铁路采访问题

时间:2010-07-20 04:58:55

标签: ruby-on-rails

我在之前的一次采访中得到了这个问题而无法做到,任何想法? 这又回来了什么?它会在哪里使用?

module ApplicationHelper
 def show_flash
flash.map{|key, value| content_tag(:div, value, {:class => key})}
 end
end

2 个答案:

答案 0 :(得分:4)

'flash'是一种ruby-on-rails惯例,用于存储在一个请求中生成的信息(例如,“无效的用户名”或“未找到会话”或“感谢我们购买”或“购物车更新”)从客户端渲染到下一个视图。

flash是类似哈希的对象。

类似哈希的对象的.map方法将迭代哈希中的所有项目;在这种情况下,.map方法正在传递一个接受两个参数的块(它命名为keyvalue,因为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
flashmap {|键,值| content_tag(:div,value,{:class =&gt; key})}
结束