如何使用args编写运行多个任务的任务?

时间:2012-12-17 14:38:30

标签: ruby-on-rails ruby ruby-on-rails-3.1 rake task

我想为每个模型运行任务,如下所示:

task all: :environment do
  resources = [ Question,
                Answer,
                Link,
                Event,
                PastEvent,
                Review ]
  resources.each do |resource|
    #Rake::Task["tire:import CLASS=#{resource} FORCE=true"].execute
    system "rake environment tire:import CLASS='#{resource}' FORCE=true"
  end
end

更好的方法是使用system吗?

1 个答案:

答案 0 :(得分:3)

您可以使用Rake::Task["<your_task>"].invoke(<params>)

例如:Rake::Task["db:migrate"].invoke

invoke运行依赖项,与execute不同。如果已调用该任务,则您需要使用reenableRake::Task["<your_task>"].reenable