我想为每个模型运行任务,如下所示:
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
吗?
答案 0 :(得分:3)
您可以使用Rake::Task["<your_task>"].invoke(<params>)
。
例如:Rake::Task["db:migrate"].invoke
。
invoke
运行依赖项,与execute
不同。如果已调用该任务,则您需要使用reenable
即Rake::Task["<your_task>"].reenable