将Application.rb中的应用程序变量与初始值设定项/ file.rb相比,有什么好处吗?

问题描述:

有很多关于在哪里存储应用程序范围变量的建议,包括几个可以帮您实现的gem变量。对于轨道4的最简单的方法,我发现这样做是为了在任何application.rb中或初始化添加变量“配置”/file.rb像这样将Application.rb中的应用程序变量与初始值设定项/ file.rb相比,有什么好处吗?

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

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

我想知道这两者是否有任何区别,可能是加载时间,或者如果应用程序中的某个应用程序每次刷新应用程序时都会被调用,等等......

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

对于API密钥等秘密位和鲍勃答案是使用环境变量与初始化结合:

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

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

否则,如果您需要在控制器之间使用一个变量,你可以把它放在你的ApplicationController