這裏是我的耙子任務如何傳遞參數到使用耙調用rake任務::任務
task :lab => :enviroment do
Rake::Task["db:rollback"].invoke('STEP=5')
end
它沒有做我想要的。我要的是
rake db:rollback STEP=5
我用Rails 3.2.1紅寶石1.9.2。
在命令行我想執行
rake lab
的實際情況要複雜得多,但這是JIST。
這裏是我的耙子任務如何傳遞參數到使用耙調用rake任務::任務
task :lab => :enviroment do
Rake::Task["db:rollback"].invoke('STEP=5')
end
它沒有做我想要的。我要的是
rake db:rollback STEP=5
我用Rails 3.2.1紅寶石1.9.2。
在命令行我想執行
rake lab
的實際情況要複雜得多,但這是JIST。
將此作爲環境變量傳遞可能是您最好的選擇。嘗試:
task :lab => :enviroment do
Rake::Task["db:rollback"].invoke(ENV['STEP'])
end
rake db:rollback STEP=5
選項可以通過rake命令指定鍵/值對傳遞到耙:
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
請看問題。你的回答是對的,但與問題無關。 – 2012-02-24 18:04:22
task :lab => :enviroment do
ENV['STEP'] ||= 5
Rake::Task["db:rollback"].invoke
end
我需要傳遞的是5還rake任務裏面。我怎麼做 ? – 2012-02-24 17:57:11
你想使用它的每個人只需調用ENV ['STEP']並返回5. – Veraticus 2012-02-24 18:11:10
這不起作用,因爲那樣會像Rake :: Task [「db:rollback」]。invoke(5)。注意'STEP'沒有被傳遞給db:rollback – 2012-02-24 19:14:01