【问题标题】:How to write task which run multiple tasks with args?如何编写使用 args 运行多个任务的任务?
【发布时间】:2012-12-04 16:02:26
【问题描述】:

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

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 是否更好?

【问题讨论】:

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


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-15
      • 2015-12-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多