2012-12-19 74 views
2

我有兩個簡單的rake任務 - 拋出下面的錯誤一個工程和一個:是否有可能判斷環境是否已被傳入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

不知道優雅,但它會作爲除非Rails.nil那麼簡單? – mackmack

+0

你可以使用'Rails.env'嗎? –

+0

@mackmack'Rails.nil?'在上述兩個任務中返回'false',所以不,我認爲我不能使用它。 –

回答

1

我的一位同事指出$rails_rake_task如果rails env被加載則返回true,否則返回false。這奏效了:

Rails.application.config.my_config_param if $rails_rake_task

相關問題