1

我需要在我的 Rails 项目中保持某种状态。某种全局变量或类似的东西,它在服务器启动时具有初始值,并且可以在项目中的任何地方访问和修改。怎么做?实现它的最佳方法是什么?

4

2 回答 2

1

在文件夹中创建一个文件config/initializers并在那里创建您的全局变量。

# config/initializers/my_var.rb
$my_global_var = 'hello'

但通常有“更清洁”的方法可以做到这一点。全局变量不是线程安全的,这是最近的热门话题。

于 2012-11-23T11:17:21.900 回答
0

我认为这里最好的解决方案可能是settingslogic gem。您在 yaml 文件中定义设置,然后您可以在代码中的任何位置访问它们。阅读并设置它们。同时,它使您能够拥有不止一个“全局变量”。在我参与过的大多数项目中,设置在运行时都没有改变,但如果你需要这种行为,你可以这样做。

# config/application.yml
defaults: &defaults
  my_global_variable: 100

development:
  <<: *defaults

production:
  <<: *defaults

#And then anywhere in the application you can do:
Settings['my_global_variable'] = 200
于 2012-11-23T11:49:34.303 回答