Rails中的全局变量

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

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

然而,将这个变量初始化一次并从任何地方访问它都会很不错。 怎么可能呢?

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

 class ApplicationController < .. ... helper_method :my_var def my_var @support = Support.new(:id => 1) end ... end 

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

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

但是,全局变量很糟糕:-)你应该阅读“Simone Carletti”的这篇文章 。

您可能希望在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 

听起来你真正想要的是将数据存储在用户的会话中,对吗? 有关更多详细信息,请参阅http://www.ozmox.com/2009/10/13/rails-sessions/ 。