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

我们在application.rhtml(global layout)里经常需要写各种flash的显示:
<% unless flash[:notice].nil? %>
  <div id="notice"><%= flash[:notice] %></div>
<% end %>

<% unless flash[:error].nil? %>
  <div id="error"><%= flash[:error] %></div>
<% end %>

我们可以循环来输出flash:
<% flash.each do |key, msg| %>
  <%= content_tag :div, msg, :id => key %>
<% end %>

这样写倒是节约了代码,但是可能flash消息的顺序不是很好,我们可以这样写:
<%- [:error, :warning, :notice, :message].each do |key| -%>
  <%= content_tag :div, flash[key], :id=> key if flash[key] %>
<%- end -%>

你可能感兴趣的:(Flash,Rails)