2

我有两个简单的 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在 begin/rescue 语句中。但是我想知道是否有一种方法可以先验地判断环境是否丢失,以便我可以更优雅地解决这个问题。有没有这样的方法?我一直找不到一个......

4

1 回答 1

1

我的一位同事指出,$rails_rake_task如果加载了 rails env,则返回 true,否则返回 false。这成功了:

Rails.application.config.my_config_param if $rails_rake_task

于 2012-12-20T18:15:38.500 回答