2012-02-24 8 views
5

ここでは私のrakeタスクどのように私は熊手を使って呼び出されるrakeタスクにパラメータを渡すん::タスク

task :lab => :enviroment do 
    Rake::Task["db:rollback"].invoke('STEP=5') 
end 

私が欲しいものをやっていないです。私が欲しいのは

rake db:rollback STEP=5 

私はRuby 1.9.2でRails 3.2.1を使用しています。私は

rake lab 

実際のケースに実行したいコマンドラインで

ははるかに複雑であるが、これはJISTです。環境変数としてこれを渡す

答えて

-1

はあなたの最善の策かもしれません。試してみてください:

task :lab => :enviroment do 
    Rake::Task["db:rollback"].invoke(ENV['STEP']) 
end 

rake db:rollback STEP=5 
+0

私はまた、rakeタスク内のその5を渡す必要があります。それ、どうやったら出来るの ?あなたがそれを使用したい –

+0

皆がちょうど[「STEP」] ENVを呼び出し、それは熊手のようになるので、それは動作しませんでした。5. – Veraticus

+1

を返します::タスク[「DB:ロールバック」]。(5)を呼び出します。 'STEP'はdbに渡されていません。ロールバック –

0

オプションレーキコマンドにキー/値のペアを指定することにより、熊手に渡すことができます。

rake options:show opt1=value1 

これらのコマンドラインオプションが自動的にあなたの内でアクセスできる環境変数として設定されていますrakeタスク:

namespace :options do 

    desc "Show how to read in command line options" 
    task :show do 
    p "option1 is #{ENV['opt1']}" 
    end 

end 
+0

質問を参照してください。あなたの答えは正しいですが、質問には関係ありません。 –

4
task :lab => :enviroment do 
    ENV['STEP'] ||= 5 
    Rake::Task["db:rollback"].invoke 
end 
関連する問題