Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails调用lib/tasks文件夹中的任务_Ruby On Rails_Ruby_Ruby On Rails 4 - Fatal编程技术网

Ruby on rails Rails调用lib/tasks文件夹中的任务

Ruby on rails Rails调用lib/tasks文件夹中的任务,ruby-on-rails,ruby,ruby-on-rails-4,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" def method %x[rake ra

我在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"
def method
  %x[rake rake backup:mysqldump]
  redirect_to root_path
end
现在我想从这样的控制器调用它:

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"
def method
  %x[rake rake backup:mysqldump]
  redirect_to root_path
end
但我有一个错误:

sh: 1: backup:mysqldump: not found
有什么问题?我做的和其他任务完全一样

应该是这样的

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

之间的空格应该是这样的

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

在控制器中,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"
def method
  %x[rake rake backup:mysqldump]
  redirect_to root_path
end

在控制器中,您可以这样使用:

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"
def method
  %x[rake rake backup:mysqldump]
  redirect_to root_path
end
请尝试以下命令:

Rake::Task['task_name'].invoke(args)
请尝试以下命令:

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