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