0

アプリケーションで rake タスクを作成しました。アプリケーション ユーザーがメニューのリンクからタスクにアクセスできるようにしたいのですが、そこからタスクを呼び出す方法がわかりません。このようなもの...?

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

2 に答える 2

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"} %>
于 2011-08-11T15:29:10.563 に答える
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
于 2011-10-26T15:33:25.957 に答える