Rails全局状态变量

时间:2012-11-23 11:15:13

标签: ruby-on-rails ruby variables global

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

2 个答案:

答案 0 :(得分:1)

config/initializers文件夹中创建一个文件,然后在那里创建全局变量。

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

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

答案 1 :(得分: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
相关问题