红联Linux门户
Linux帮助

Rails项目编写中的一些小技巧小心得

发布时间:2015-02-15 22:00:10来源:linux网站作者:mydo

1.如果form中有数据要传回服务器可以用隐藏属性的控件:

form_for(xxx) do |f|

f.hidden_field :xxx,value:xxx

end


2.如果你需要一些信息放在全局页面框架里,但是这些信息属于某些特定页面的话,可以用如下方法实现:

<% content_for :QuestionsCount do %>
<%= @question.length if @question %>
<%= 0 unless @question %>
<% end %>

比如我想在全局页框架里显示question的数量(放在页标题中),而question对象只在某个页面存在,即以上代码放在index.html.erb中,然后在页框文件application.html.erb中加上如下代码:

<title>Exams (题库中有 <%=yield :QuestionsCount %> 道题目)</title>


3.在一些重定向或render操作中,我们可能不需要将将要跳转的页面放到默认的页面框架里显示,我们希望使用特别的页框架;这时可以手动指定一个页框架:

respond_to do |format|
format.html {render layout:"my_layout"}
end


4.某些情况下我们希望模式的email字段可以是空或者要为一定格式,这时如果用validates_format_of验证方法就会发现,如果其值为空会验证失败,除了使用自由度更高的验证方法以外,还有一种简单的办法,就是将validates_format_of的allow_blank参数设置为true即可:

validates_format_of :email,\
with:/\A[^@][\w.-]+@[\w.-]+[.][a-z]{2,4}\z/i,allow_blank:true,message:"email格式不正确"