我想在我的 Controller 中运行一个 rake 任务。有没有办法做到这一点?

最佳答案

我同意 ddfreynee,但如果你知道你需要什么代码可以是这样的:

require 'rake'

Rake::Task.clear # necessary to avoid tasks being loaded several times in dev mode
Sample::Application.load_tasks # providing your application name is 'sample'

class RakeController < ApplicationController

  def run
    Rake::Task[params[:task]].reenable # in case you're going to invoke the same task second time.
    Rake::Task[params[:task]].invoke
  end

end

您可以改为在初始化程序中要求 'rake' 和 .load_tasks。

关于ruby-on-rails - 在 Controller 中运行 rake 任务,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1170148/

10-15 07:27