4

私が書くとき

module ApplicationHelper   
  def flash_helper 
    flash.each do |key, msg|
      content_tag :div, msg, :class => key
      ## "<div class=\"key\">" + msg + "</div>"
    end
  end
end

私がreturn声明を出さない限り、私は何も得られません。を呼び出すと、HTMLがビューにエスケープされます<%= flash_helper %>。何が得られますか?HTMLがエスケープされないようにするにはどうすればよいですか?

4

2 に答える 2

4

メソッドを使用できますconcat(Rails> = 2.2.1)

module ApplicationHelper   
  def flash_helper 
    flash.each do |key, msg|
      concat(content_tag :div, msg, :class => key)
    end
    nil
  end
end
于 2010-04-25T18:44:29.607 に答える
0

このように書き直せますか?

module ApplicationHelper   
  def flash_helper 
    s = ""
    flash.each do |key, msg|
      s += content_tag :div, msg, :class => key
      ## "<div class=\"key\">" + msg + "</div>"
    end
    return s
  end
end
于 2010-04-24T16:53:45.063 に答える