是否可以判断环境是否已传递到rake任务块?

时间:2012-12-19 23:13:04

标签: ruby-on-rails

我有两个简单的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。但我想知道是否有一种方法可以告诉先验如果缺少环境,那么我可以更优雅地解决这个问题。有这样的方式吗?我一直都找不到......

1 个答案:

答案 0 :(得分:1)

我的一位同事指出,如果加载了rails env,$rails_rake_task将返回true,否则返回false。这就是诀窍:

Rails.application.config.my_config_param if $rails_rake_task