Rails宝典之第十八式: 循环flash

我们在application.rhtml(global layout)里经常需要写各种flash的显示: 
Java代码  收藏代码
  1. <% unless flash[:notice].nil? %>  
  2.   <div id="notice"><%= flash[:notice] %></div>  
  3. <% end %>  
  4.   
  5. <% unless flash[:error].nil? %>  
  6.   <div id="error"><%= flash[:error] %></div>  
  7. <% end %>  

我们可以循环来输出flash: 
Java代码  收藏代码
  1. <% flash.each do |key, msg| %>  
  2.   <%= content_tag :div, msg, :id => key %>  
  3. <% end %>  

这样写倒是节约了代码,但是可能flash消息的顺序不是很好,我们可以这样写: 
Java代码  收藏代码
  1. <%- [:error, :warning, :notice, :message].each do |key| -%>  
  2.   <%= content_tag :div, flash[key], :id=> key if flash[key] %>  
  3. <%- end -%>  
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章