应用程序范围的全局变量

发布于 2024-12-19 02:59:02 字数 288 浏览 1 评论 0原文

在Rails中,我应该在哪里定义Rails堆栈的每一层都可以识别的变量。

例如,我想要一个 CUSTOMER_NAME='John' 变量,可以在 helperrake 任务、controller 中访问模型。我应该在 Rails 应用程序中的何处定义此变量?

我正在使用Rails v2.3.2

In Rails, where should I define the variable which can be recognized by every layer of Rails stacks.

For example, I would like to have a CUSTOMER_NAME='John' variable which can be accessed in helper, rake task, controller and model. Where should I define this variable in Rails app?

I am using Rails v2.3.2

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

唯憾梦倾城 2024-12-26 02:59:02

/app/config/initializers 的初始化程序中,所有 .rb 文件都会被加载,我通常会为类似的事情创建一个名为preferences.rb 的文件。

请参阅:http://guides.rubyonrails.org/configuring.html#using-initializer-files

In an initializer in /app/config/initializers all .rb files in here get loaded, I usually create one called preferences.rb for things like this.

See: http://guides.rubyonrails.org/configuring.html#using-initializer-files

南巷近海 2024-12-26 02:59:02

另一种方法是在 config/application.rb 中的配置对象上设置一个密钥,如下所示:

MyApp::Application.configure do
   # ...
   config.my_key = 'some "global" value'
end

然后您可以通过以下方式从应用程序中的任何位置访问 my_key:

MyApp::Application.config.my_key

此外,Mike Perham 描述了一种类似但更全面的方法 在他的博客中发布

An alternative approach is to set a key on the config object in config/application.rb, like so:

MyApp::Application.configure do
   # ...
   config.my_key = 'some "global" value'
end

You can then access my_key from anywhere in your app with just this:

MyApp::Application.config.my_key

Also, Mike Perham has described a similar, though a more comprehensive approach in his blog post.

‘画卷フ 2024-12-26 02:59:02

你想要一个真正的全局常数吗?使用::COSTUMER_NAME
你想要一个真正的全局变量吗?使用 $COSTUMER_NAME(不鼓励)。
您想要一个请求全局变量吗?在 #env 方法中使用 Hash

You want a true global constant? Use ::COSTUMER_NAME.
You want a true global variable? Use $COSTUMER_NAME (discouraged).
You want a request-global variable? Use the Hash in the #env method.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文