Rails循环输出flash知识点解析

Ruby on Rails中有一种专门针对Flash的操作方法。比如循环输出flash等。在这里我们将会学到有关Rails循环输出flash的相关技巧。#t#

我们在application.rhtml(global layout)里经常需要写各种flash的显示:

  1. < % unless flash[:notice].nil? %>   
  2. < div id="notice">< %= flash[:notice] %>
  3. < /div>   
  4. < % end %>   
  5. < % unless flash[:error].nil? %>   
  6. < div id="error">< %= flash[:error] %>
  7. < /div>   
  8. < % end %>   
  9. < % unless flash[:notice].nil? %> 
  10. < div id="notice">< %= flash[:notice] %>
  11. < /div> < % end %> < % unless flash[:error].nil? %>
  12.  < div id="error">< %= flash[:error] %>
  13. < /div> < % end %>  

 

我们可以实现Rails循环输出flash:

 
 
 
  1.  < % flash.each do |key, msg| %>   
  2. < %= content_tag :div, msg, :id => key %>   
  3. < % end %>   
  4. < % flash.each do |key, msg| %> 
  5. < %= content_tag :div, msg, :id => key %> 
  6. < % end %>  

这样写倒是节约了代码,但是可能flash消息的顺序不是很好,我们可以这样写:

 
 
 
  1. < %- [:error, :warning, :notice, 
    :message].each do |key| -%
    >   
  2. < %= content_tag :div, flash[key],
     
    :id=> key if flash[key] %>   
  3. < %- end -%>  

以上就是我们为大家介绍的Rails循环输出flash相关方法。

THE END