Run rake task in controller

后端 未结 4 1414
情话喂你
情话喂你 2020-11-28 04:33

I\'d like to run a rake task in my controller. Is there any way to do this?

4条回答
  •  [愿得一人]
    2020-11-28 04:49

    I agree with ddfreynee, but in case you know what you need code can look like:

    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
    

    You can require 'rake' and .load_tasks in an initializer instead.

提交回复
热议问题