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。タスクがすでに呼び出されている場合は、reenableieを使用する必要があります。Rake::Task["<your_task>"].reenable

于 2012-12-17T16:54:24.343 に答える