我有两个简单的rake任务 - 一个有效,另一个抛出以下错误:
rake aborted!
undefined method `my_config_param' for #<Rails::Application::Configuration:0x007ffba6b2d320>
以下是任务:
task :with_env => :environment do
Rails.application.config.my_config_param #works
end
task :without_env do
Rails.application.config.my_config_param #fails
end
很明显为什么:without_env
失败了,我可以轻松地在开始/救援声明中将我的呼叫包裹到Rails.application.config
。但我想知道是否有一种方法可以告诉先验如果缺少环境,那么我可以更优雅地解决这个问题。有这样的方式吗?我一直都找不到......
答案 0 :(得分:1)
我的一位同事指出,如果加载了rails env,$rails_rake_task
将返回true,否则返回false。这就是诀窍:
Rails.application.config.my_config_param if $rails_rake_task