Ruby on rails 在Rails的共享命名空间中运行所有rake任务?

Ruby on rails 在Rails的共享命名空间中运行所有rake任务?,ruby-on-rails,rake,Ruby On Rails,Rake,我试图在共享的:命名空间中运行rake任务列表,如下所示: 但它不起作用 每个帖子的推荐信 desc "perform all scraping" task :scrape do Rake::Task[:scrape_nytimes].execute Rake::Task[:scrape_guardian].execute end 在我的例子中,不同之处在于所有rake任务都在一个名称空间中 Rake任务 namespace :get_ready do task check_w

我试图在共享的
:命名空间中运行rake任务列表,如下所示:

但它不起作用

每个帖子的推荐信

desc "perform all scraping"
task :scrape do
  Rake::Task[:scrape_nytimes].execute 
  Rake::Task[:scrape_guardian].execute 
end
在我的例子中,不同之处在于所有rake任务都在一个名称空间中

Rake任务

namespace :get_ready do
  task check_weather: :environment do
    p 1
  end
  task make_lunch: :environment do
    p 2
  end
  task start_car: :environment do
    p 3
  end
end
尝试创建运行所有rake任务的rake任务,如下所示

desc "Run all tasks"
task run_all: :environment do
  Rake::Task[:check_weather].execute 
  Rake::Task[:make_lunch].execute    
  Rake::Task[:start_car].execute       
end 
然后运行
rake run\u all
rake get\u ready
。我试过的以下变体也不起作用

  • Rake::任务[全部运行:检查天气]。执行
  • Rake::Task[:全部运行,:检查天气]。执行
有没有人有在共享名称空间中运行一批rake任务的经验,并且知道如何做到这一点

应该是:

desc "Run all tasks"
task run_all: :environment do
  Rake::Task['get_ready:check_weather'].execute 
  Rake::Task['get_ready:make_lunch'].execute    
  Rake::Task['get_ready:start_car'].execute       
end
命名空间是
准备就绪
检查天气
制作午餐
启动汽车
是该命名空间中的任务

更优雅的解决方案是:

desc "Run all tasks"
task run_all_elegantly: [:environment, 'get_ready:check_weather', 'get_ready:make_lunch', 'get_ready:start_car']

每个人都注意到了
rails-T
的输出,或者在您的例子中
rails-T准备好了吗?
它将每个命令和描述显示为注释,因此您可以通过管道输出并使用bash执行它:

(rails -T deploy) | /bin/bash
因此,如果要执行所有任务,则无需执行额外的任务