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/ 。