诗歌rails之循环flash

我们在application.rhtml(global layout)里经常需要写各种flash的显示:
ruby代码
  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:
ruby代码
  1. <% flash.each do |key, msg| %>  
  2.   <%= content_tag :div, msg, :id => key %>  
  3. <% end %>  
这样写倒是节约了代码,但是可能flash消息的顺序不是很好,我们可以这样写:
ruby代码
  1. <%- [:error, :warning, :notice, :message].each do |key| -%>  
  2.   <%= content_tag :div, flash[key], :id=> key if flash[key] %>  
  3. <%- end -%>  
posted @ 2009-07-07 14:48  麦飞  阅读(251)  评论(0编辑  收藏  举报