-1

嗨,我有一个用于在引擎 X 中收集闪存消息的 rails 助手

def flash_messages
  message = []
  flash.each do |k,m|
    message << m
  end
  message
end

现在我已经在我的主应用程序助手中覆盖了这个函数

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”,这是因为没有为帮助程序定义 flash。

谢谢

4

1 回答 1

2

Railsflash存在于请求的上下文中,并使用会话的一部分在内部进行管理。因此,引用 flash 的方法必须在该上下文中,即控制器。默认情况下,Rails 助手仅在视图中可用,在控制器中不可用。如果您将您的方法移动到 ApplicationController,那么它应该可以访问闪存。

这是关于Rails 的文档flash

于 2012-11-19T19:08:28.607 回答