我在之前的一次采访中得到了这个问题而无法做到,任何想法? 这又回来了什么?它会在哪里使用?
module ApplicationHelper
def show_flash
flash.map{|key, value| content_tag(:div, value, {:class => key})}
end
end
答案 0 :(得分:4)
'flash'是一种ruby-on-rails惯例,用于存储在一个请求中生成的信息(例如,“无效的用户名”或“未找到会话”或“感谢我们购买”或“购物车更新”)从客户端渲染到下一个视图。
flash是类似哈希的对象。
类似哈希的对象的.map
方法将迭代哈希中的所有项目;在这种情况下,.map
方法正在传递一个接受两个参数的块(它命名为key
和value
,因为key
可用于查找来自哈希的value
。该块使用content_tag
帮助器输出新的<div>
元素,其中包含散列值和CSS选择器类key
。
所以对于像这样的闪光:{:name => "sars", :food => "pizza"}
它会像下面这样发出HTML:<div class="name">sars</div><div class="food">pizza</div>
。
这是一个聪明的小助手方法,可能会节省大量的输入,但它做了一些假设:视图中的顺序无关紧要,所有的键都已经在CSS中或者CSS准备处理未知的类元素以优雅的方式。这个帮助器可能只在模板中使用一次,但是作为一种可以在以后放入其他项目的方法仍然有用。
答案 1 :(得分:0)
模块ApplicationHelper
def show_flash
flash。map {|键,值| content_tag(:div,value,{:class =&gt; key})}
结束
端