如何将参数传递给使用Rake :: Task调用的rake任务

Nic*_*ilt 5 ruby-on-rails

这是我的佣金任务

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

它没有做我想要的.我想要的是

rake db:rollback STEP=5
Run Code Online (Sandbox Code Playgroud)

我在ruby 1.9.2上使用Rails 3.2.1.

在命令行上我想执行

rake lab
Run Code Online (Sandbox Code Playgroud)

真实情况要复杂得多,但这就是主宰.

Ver*_*cus -1

将其作为环境变量传递可能是您最好的选择。尝试:

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

rake db:rollback STEP=5
Run Code Online (Sandbox Code Playgroud)