簡體   English   中英

如何將參數傳遞給使用Rake :: Task調用的rake任務

[英]How do I pass parameter to a rake task that is invoked using Rake::Task

這是我的佣金任務

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

真實情況要復雜得多,但這就是主宰。

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

通過在rake命令上指定鍵/值對,可以將選項傳遞給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

將此作為環境變量傳遞可能是您最好的選擇。 嘗試:

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

rake db:rollback STEP=5

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM