运行 Rails 共享名称空间内的所有 rake 任务?
Run all rake tasks inside a shared namespace in Rails?
我正在尝试 运行 共享 :namespace
中的 rake 任务列表 post:How do I run all rake tasks?。
但是它不起作用。
根据 post
的建议
desc "perform all scraping"
task :scrape do
Rake::Task[:scrape_nytimes].execute
Rake::Task[:scrape_guardian].execute
end
我的情况的不同之处在于所有 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_all
或rake get_ready
。我尝试的以下变体也没有用。
Rake::Task[run_all:check_weather].execute
Rake::Task[:run_all, :check_weather].execute
有没有人有过 运行 在共享命名空间中执行一批 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
命名空间是 get_ready
,check_weather
、make_lunch
、start_car
是该命名空间中的任务。
更优雅的解决方案是:
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 get_ready
?
它显示了每个命令,并将描述作为注释,因此您可以通过管道输出并使用 bash:
执行它
(rails -T deploy) | /bin/bash
所以如果你想执行所有任务,就不需要额外做一个任务。
我正在尝试 运行 共享 :namespace
中的 rake 任务列表 post:How do I run all rake tasks?。
但是它不起作用。
根据 post
的建议desc "perform all scraping"
task :scrape do
Rake::Task[:scrape_nytimes].execute
Rake::Task[:scrape_guardian].execute
end
我的情况的不同之处在于所有 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_all
或rake get_ready
。我尝试的以下变体也没有用。
Rake::Task[run_all:check_weather].execute
Rake::Task[:run_all, :check_weather].execute
有没有人有过 运行 在共享命名空间中执行一批 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
命名空间是 get_ready
,check_weather
、make_lunch
、start_car
是该命名空间中的任务。
更优雅的解决方案是:
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 get_ready
?
它显示了每个命令,并将描述作为注释,因此您可以通过管道输出并使用 bash:
(rails -T deploy) | /bin/bash
所以如果你想执行所有任务,就不需要额外做一个任务。