Rails在lib / tasks文件夹中调用任务

时间:2015-06-03 09:17:50

标签: ruby-on-rails ruby ruby-on-rails-4

我在lib / tasks文件夹中有一个backup.rake文件

任务看起来像这样:

require 'find'
namespace :backup do  
  desc "Backup the database to a file." 
  task :mysqldump => [:environment] do
  end
end

现在我想从这样的控制器中调用它:

system "RAILS_ENV="+Rails.env+"rake backup:mysqldump"

但我收到了这个错误:

sh: 1: backup:mysqldump: not found

有什么问题?我对其他任务完全一样......

3 个答案:

答案 0 :(得分:2)

应该是这样的

system "RAILS_ENV="+Rails.env+" rake backup:mysqldump"

" rake

之间的空格

答案 1 :(得分:1)

在控制器中你可以像这样使用:

def method
  %x[rake rake backup:mysqldump]
  redirect_to root_path
end

答案 2 :(得分:1)

尝试此命令:

Rake::Task['task_name'].invoke(args)