如何在Rails中识别flash []消息的类型

时间:2011-12-09 04:48:38

标签: ruby-on-rails json

我想为不同类型的flash消息设置不同的样式:错误,通知,成功。 如何识别传递给我视图的Flash消息类型?

在我的控制器中,我有:

flash[:error] = "Access denied."

在我的application.html.haml中,我有:

  - if not flash.empty?
    - flash.each do |key, value|
      %div{:class => "alert-message #{key}"}= value

谢谢。

1 个答案:

答案 0 :(得分:3)

flash基本上是基于哈希。每种闪存消息只是与该类型的符号密钥相关联的值。因此flash[:error]用于错误消息,flash[:notice]flash[:success]用于其密钥类型。您甚至可以定义自己的类型(只使用任何符号)。并且您可以同时设置任意数量的键(例如,您可以在同一请求中设置flash[:notice]flash[:error]。)

在您的示例中,这是使用类div创建alert-message #{key}。因此,例如,如果设置flash[:notice],则输出将为:

<div class="alert-message notice">Notice message</div>

它会为您设置的每种类型打印一个。因此,如果请求设置为flash[:error] = 'something went terribly wrong'flash[:notice] = 'take a look around',您将从该模板中获取此HTML:

<div class="alert-message error">something went terribly wrong</div>
<div class="alert-message notice">take a look around</div>
相关问题