Rails flash消息助手

dar*_*ryl 4 ruby-on-rails ruby-on-rails-3 flash-message

我已经设置了一个flash助手:

def flash_message
  flash.each do |key, msg|
    content_tag :div, msg, :id => key, :class => 'flash'
  end
end
Run Code Online (Sandbox Code Playgroud)

我把它放在我的application.html.erb中:

<%= flash_message %>
Run Code Online (Sandbox Code Playgroud)

它返回的内容如下:

{:notice=>"Testing"}
Run Code Online (Sandbox Code Playgroud)

我对rails很新,所以这可能是一个业余的错误.

wee*_*HIS 10

你是对的,这是一个业余的错误.;)

在这里使用.each只是迭代消息并为每个消息创建一个div.你想要的是从div中创建一个数组,然后在最后将它们连接在一起.像这样的东西:

def flash_message
  flash.map do |key, msg|
    content_tag :div, msg, :id => key, :class => 'flash'
  end.join
end
Run Code Online (Sandbox Code Playgroud)