1

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

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吗?

4

1 回答 1

3

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

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

invoke运行依赖项也不同于execute. 如果任务已经被调用,你需要使用reenableieRake::Task["<your_task>"].reenable

于 2012-12-17T16:54:24.343 回答