这是我的佣金任务
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
真实情况要复杂得多,但这就是问题。
答案 0 :(得分:4)
task :lab => :enviroment do
ENV['STEP'] ||= 5
Rake::Task["db:rollback"].invoke
end
答案 1 :(得分:0)
通过在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
答案 2 :(得分:-1)
将此作为环境变量传递可能是您最好的选择。尝试:
task :lab => :enviroment do
Rake::Task["db:rollback"].invoke(ENV['STEP'])
end
rake db:rollback STEP=5