Ale*_*vin 9 ruby ruby-on-rails
我的Rails应用程序中有一个反馈表单.反馈表单需要初始化@support变量,并且应该在每个页面上都可见.初始化很短:
@support = Support.new(:id => 1)
Run Code Online (Sandbox Code Playgroud)
但是,将此变量初始化一次并从任何地方访问它都会很不错.怎么可能呢?
小智 12
您可以使用辅助方法(在应用程序控制器中)初始化支持变量.像这样的东西:
class ApplicationController < ..
...
helper_method :my_var
def my_var
@support = Support.new(:id => 1)
end
...
end
Run Code Online (Sandbox Code Playgroud)
全局变量以美元符号'$'开头,如:
$support = Support.new(:id => 1)
Run Code Online (Sandbox Code Playgroud)
但是,全局变量很糟糕:-)你应该阅读"Simone Carletti"的这篇文章.
您可能希望在ApplicationController中添加一些内容,而不是全局变量.
或者:
before_filter initialize_support
def initialize_support
@support = Support.new(:id => 1)
end
Run Code Online (Sandbox Code Playgroud)
要么:
helper_method support_form
def support_form
@support_form ||= Support.new(:id => 1)
end
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
10496 次 |
最近记录: |