2012-02-21 72 views
3
namespace :jobs do 
    task :environment => [:environment] do 
    #Something cool 
    end 
end 

這將導致循環依賴:environment,這我只是想依靠Rails的任務environment如何避免依賴項的Rake任務名稱衝突?

這怎麼能正確設置?

+0

你想做什麼?你是否試圖將一些代碼附加到內置環境任務中?或者您是否真的想要命名您的自定義任務:環境?如果是後者,那麼就把它命名爲別的東西。 – MrDanA 2012-02-21 17:11:06

+0

我真的想命名我的任務:環境並重命名它並不回答問題。 – 2012-02-21 17:17:46

回答

10

你也應該能夠說:

task :environment => [ 'rake:environment' ] do ... end 

的「耙:」命名空間是頂級命名空間。這就像在Ruby中做:: CONSTANT_NAME一樣。

5

我剛剛有完全相同的問題,其中名稱空間中的任務試圖調用父名稱空間中的同名名稱的任務。這確實是可能的。

namespace :jobs do 
    task :environment => [ '^environment' ] do 
    #Something cool 
    end 
end 

您使用的每個插入符號都將在名稱空間層次結構中開始名稱解析高一級。請參閱:http://rake.rubyforge.org/files/doc/rakefile_rdoc.html

+1

這也適用 – 2012-03-07 16:15:37