Rails中的全局变量

时间:2011-03-26 10:46:33

标签: ruby-on-rails ruby

我的Rails应用程序中有一个反馈表单。反馈表单需要初始化@support变量,并且应该在每个页面上都可见。初始化非常短:

@support = Support.new(:id => 1)

然而,将此变量初始化一次并从任何地方访问它都会很好。怎么可能这样做?

4 个答案:

答案 0 :(得分:12)

您可以使用辅助方法(在应用程序控制器中)初始化支持变量。像这样:

class ApplicationController < ..
   ...
   helper_method :my_var

   def my_var
      @support = Support.new(:id => 1)
   end
   ...

 end

答案 1 :(得分:5)

全局变量以美元符号'$'开头,如:

$support = Support.new(:id => 1)

然而,全局变量很糟糕:-)你应该阅读“Simone Carletti”这个post

答案 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/