使用来自其他任务的参数调用rake任务

Kar*_*Mtl 15 ruby-on-rails rake-task

我希望能够为我必须从另一个任务调用的任务传递参数

不带参数的调用对我来说是这样的:

Rake::Task["mytask1"].invoke
Run Code Online (Sandbox Code Playgroud)

但是,对于这样的参数,它不会:

Rake::Task["mytask1[1,v18_0,20141230]"].invoke
Run Code Online (Sandbox Code Playgroud)

谢谢

Raj*_*Das 41

你可以试试

Rake::Task[:my_task].invoke(1,'v18_0',20141230)
Run Code Online (Sandbox Code Playgroud)

或者你可以做

Rake.application.invoke_task("my_task[1, 'v18_0', 20141230]")
Run Code Online (Sandbox Code Playgroud)

  • 请注意,您必须调用“.reenable”才能两次运行相同的任务。见 http://stackoverflow.com/questions/22639194/invoking-the-same-rake-task-twice-in-rspec (4认同)

Chr*_*hol 6

您可以通过调用传递参数

namespace :tester do
  desc "test"
  task :test, [:amount] => :environment do |task, args|
    puts "Your amount is #{args.amount}"
  end

  task :test_task do
    Rake::Task["tester:test"].invoke(100)
  end  
end

rake tester:test_task
Your amount is 100
Run Code Online (Sandbox Code Playgroud)