我有一个应用程序,它有很多api密钥和设置要管理,并使用初始化程序加载它们。因为每个环境都不同,我无法在environment.rb文件中设置常量。 (我试过了;没有用。)所以我在每次部署之前手动开始评论和取消,这很乏味。我想知道在必须处理初始化程序中加载的多个配置设置的情况下,什么是最佳实践。
答案 0 :(得分:2)
在您的environment.rb中,如果请求来自本地,您可以设置密钥:
Rails::Initializer.run do |config|
if local_request?
CONSTANT1 = 10
else
CONSTANT1 = 20
end
end
这样做的目的是检查您的开发环境localhost
是localhost:3000
。如果是,则if / else语句将选择要设置的常量。
另一种选择是在环境文件夹中设置常量,这可能是一个更好的主意
因此,对于您的生产常量,请将它们放在config/environments/production.rb
。
并且您的开发常量将它们放在config/environments/development.rb
。
答案 1 :(得分:1)
您应该在初始化文件中设置这些常量,您可以在初始化程序目录下创建这些常量。然后,使用环境目录下的特定于环境的配置文件为每个环境设置它们。