我正在使用gem(RTURK),现在我在包装gem的类上有以下代码:
if Rails.env.production?
RTurk.setup(ENV['AMAZON_KEY_ID'], ENV['AMAZON_KEY'], :sandbox => false)
else
RTurk.setup(ENV['AMAZON_KEY_ID'], ENV['AMAZON_KEY'], :sandbox => true)
end
我想将其转移到配置/环境/生产和配置/环境/开发和测试
但我不确定在哪一点上我应该放置gem的配置。它需要在config.after_initialize
吗?
答案 0 :(得分:1)
在任何初始值设定项之前加载环境文件(请参阅Rails Initalization Guide)。这意味着您可以在环境文件中设置配置变量,然后在初始化程序中使用它。
在你的情况下,看起来唯一不同的是RTurk是否会被沙箱化。您可以将config.rturk_sandbox = true
添加到application.rb,将config.rturk_sandbox = false
添加到production.rb文件。然后创建config / initializers / rturk.rb,它使用该值。
RTurk.setup(ENV['AMAZON_KEY_ID'], ENV['AMAZON_KEY'], :sandbox => YourApp::Application.config.rturk_sandbox)
(我建议在application.rb中添加config.rturk_sandbox = true
,以便在忘记在单个环境文件中设置它时安全起见。)