我的Rails应用程序中有一个反馈表单。反馈表单需要初始化@support变量,并且应该在每个页面上都可见。初始化非常短:
@support = Support.new(:id => 1)
然而,将此变量初始化一次并从任何地方访问它都会很好。怎么可能这样做?
答案 0 :(得分:12)
您可以使用辅助方法(在应用程序控制器中)初始化支持变量。像这样:
class ApplicationController < ..
...
helper_method :my_var
def my_var
@support = Support.new(:id => 1)
end
...
end
答案 1 :(得分:5)
答案 2 :(得分:5)
您可能希望在ApplicationController中添加一些内容而不是全局变量。
或者:
before_filter initialize_support
def initialize_support
@support = Support.new(:id => 1)
end
或者:
helper_method support_form
def support_form
@support_form ||= Support.new(:id => 1)
end
答案 3 :(得分:2)
听起来你真正想要的是将数据存储在用户的会话中,对吧?有关详细信息,请参阅http://www.ozmox.com/2009/10/13/rails-sessions/。