Rails 3 link_to rake任务

时间:2011-08-11 15:22:50

标签: ruby-on-rails-3 link-to rake-task

我在我的应用程序中创建了一个rake任务,现在我希望从菜单上的链接可以访问app用户的任务,但我不知道如何从那里调用它。像这样......?

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

2 个答案:

答案 0 :(得分: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"}

答案 1 :(得分:1)

我按照你说的尝试了,但出现了下一个错误:

NameError (uninitialized constant MyTasksController::Rake)

编辑答案:

我终于可以这样做了:

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