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
因此,如果要执行所有任务,则无需执行额外的任务