2011-08-11 119 views
0

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

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

回答

1

你不能这样做。 Link_to可以链接到静态或控制器动作。所以你需要创建一些动作,在那里你可以调用你的Rake Task。

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

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

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

NameError (uninitialized constant MyTasksController::Rake) 

编辑答案:

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

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

你可能需要在你的控制器中推送'包括Rake'? – andrewdotnich