2016-06-02 2 views
0

Ich versuche, eine Liste der Rake-Aufgabe in einem freigegebenen :namespace nach diesem Beitrag zu starten: How do I run all rake tasks?.Führen Sie alle Rake-Aufgaben in einem freigegebenen Namespace in Rails aus?

Aber es funktioniert nicht.

Empfehlung per Post

desc "perform all scraping" 
task :scrape do 
    Rake::Task[:scrape_nytimes].execute 
    Rake::Task[:scrape_guardian].execute 
end 

Der Unterschied in meinem Fall ist, dass alle Rake Aufgaben in einem Namensraum sind.

Rake Aufgaben

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 

Der Versuch, eine Harke Aufgabe zu erstellen, die wie unten alle Rake-Aufgaben ausgeführt wird.

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 

Und dann mit rake run_all oder rake get_ready läuft. Die unten beschriebenen Variationen haben auch nicht funktioniert.

  • Rake::Task[run_all:check_weather].execute
  • Rake::Task[:run_all, :check_weather].execute

Hat Erfahrung jemand eine Charge von Rake Aufgaben in einem gemeinsamen Namensraum läuft und weiß, wie dies zu tun?

Antwort

2

es sein sollte:

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 

Der Namespace ist get_ready und check_weather, make_lunch, start_car Aufgabe sind in diesem Namensraum.

elegantere Lösung ist:

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