将应用程序变量放在Application.rb和initializers / file.rb中是否有任何好处

时间:2015-06-20 14:56:48

标签: ruby-on-rails configuration

关于存储应用程序范围变量的位置有很多建议,包括为您完成的一些宝石。对于Rails 4,我发现这样做的最简单方法是将一个变量添加到' config'在Application.rb或initializers / file.rb中,如

#/config/application.rb
config.new_variable = 5

#/config/initializers/application_variables.rb
Rails.application.config.new_variable = 5

我想知道这两者是否存在任何差异,可能是加载时间,或者每次刷新应用程序时是否会调用应用程序中的那个等等......

1 个答案:

答案 0 :(得分:0)

这绝对取决于预期用途。我会使用/config/application.rb来配置实际的Rails应用程序。不存储我自己的代码中使用的各种变量。这只是一个伪装的全球性。

对于API密钥和其他秘密位和bob,答案是使用环境变量与初始化器结合使用:

# /config/initializers/boozehound_client
# a fictional API client 

Boozehound.configure(
  api_key: ENV['BOOZEHOUND_API_KEY'],
  secret: ENV['BOOZEHOUND_API_SECRET']
)

否则,如果您需要在控制器之间使用变量,则可以将其设置为ApplicationController