嗨我有一个rails helper用于收集引擎X中的flash消息
def flash_messages
message = []
flash.each do |k,m|
message << m
end
message
end
现在我已经在我的主app助手
中覆盖了这个功能include X:Xhelper
def flash_messages
message = []
if required_message
flash.each do |k,m|
message << m
end
else
message = "Flash messages are not displayed"
end
message
end
现在,当我使用它时,我得到错误“未定义的局部变量或方法`flash'for Object:Class”,因为没有为helper定义flash。
由于
答案 0 :(得分:1)
Rails flash
出现在请求的上下文中,并使用部分会话在内部进行管理。因此,引用flash的方法必须在该上下文中,换句话说是控制器。默认情况下,Rails助手只能在视图中使用,而不能在控制器中使用。如果将方法移动到ApplicationController,那么它应该可以访问flash。