Rails 3中的link_to rake任务(Rails 3 link_to rake task)

2019-10-31 12:02发布

我在我的应用程序中创建一个rake任务,现在我希望任务是入店从菜单上的一个链接的应用程序的用户,但我不知道如何从那里调用它。 事情是这样的......?

<%= link_to t('backup'), Rake::Task['backup'].invoke %>

Answer 1:

你不能做到这一点。 LINK_TO可以链接到一些静止或控制器动作。 所以,你需要创建一些行动,在那里你可以调用你的Rake任务。

class MyTasksController < ApplicationController 
  def rake_it
    Rake::Task['backup'].invoke
  end
end

<%= link_to  t("backup"), {:controller => :my_tasks", :action => "rake_it"}


Answer 2:

我试着像你说的,但接下来出现的错误:

NameError (uninitialized constant MyTasksController::Rake)

编辑答案:

我终于可以通过这种方式做到这一点:

class MyTasksController < ApplicationController
  def rake_it
    system ('rake backup:db:mysql')
    redirect_to :action => 'index', :controller => '/events'
  end
end


文章来源: Rails 3 link_to rake task