2011-04-12 14 views
56

Jak uruchomić ten plik rake w terminalu/konsoli?Szyny, jak uruchomić zadanie rake'a

mój statistik.rake w lib/zadań

desc "Importer statistikker" 
namespace :reklamer do 
    task :iqmedier => :environment do 
    ... 
    end 
    task :euroads => :environment do 
    ... 
    end 
    task :mikkelsen => :environment do 
    ... 
    end 
    task :orville => :environment do 
    ... 
    end 
end 

Odpowiedz

86

Nie powinno być uruchomione zadania Rake w konsoli Rails, ale zamiast w wierszu Terminal/polecenia uruchamiając

rake task_name 

Jeśli naprawdę musi uruchomienia zadania Rake w Ruby, powinno być może zrobić:

Rake::Task['task_name'].invoke 

, ale zwykle odbywa się to tylko w samym zadaniu prowizji, aby uruchomić inny.

Aby uruchomić wiele zadań w tej samej przestrzeni nazw z jednego zadania, tworzyć następujące nowe zadanie w przestrzeni nazw:

task :runall => [:iqmedier, :euroads, :mikkelsen, :orville ] do 
    # This will run after all those tasks have run 
end 
+0

Jak mogę zgarnąć wszystkie zadania na raz lub czy muszę zmienić obszar nazw na zadanie? –

+1

Jeśli chcesz uruchomić wszystkie zadania naraz zrobić zadanie: wszystko => [: A: B: C], a następnie uruchom natarcia reklamer: Wszystkie –

+1

który nie był częścią Twojego pytania, ale trzeba by stworzyć nowe zadanie, które wywoła każdego z nich, a do tego jest skrót. Zobacz moją zaktualizowaną odpowiedź. –

18

Czy próbowałeś rake reklamer:iqmedier?

Moje niestandardowe zadania rake znajdują się w katalogu lib, a nie w lib/task. Nie jestem pewien, czy to ma znaczenie.

+1

chcę uruchomić wszystkie zadania na raz –

+0

zamiast wpisywać natarcia reklamer: iqmedier, rake reklamer: euroads .... –

20
Rake::Task['reklamer:orville'].invoke 

lub

Rake::Task['reklamer:orville'].invoke(args) 
+0

To podejście będzie działało, ale "poprawny" sposób na zestawienie zadań raków został odebrany przez @ andrew-marshall. –

+3

proszę podać odniesienie, jeśli zamierzasz powiedzieć coś w rodzaju "prawidłowego" sposobu ... ". moja odpowiedź była odpowiedzią na oryginalne pytanie. –

+2

Jako test teoretyczny, próbowałem uruchomić 'Rake :: Task ['db: seed']. Invoke', ale nie działa, mówiąc" Nie wiem, jak zbudować zadanie "db: seed" " – lulalala

1

W przypadku szyn 4.2 powyższe metody nie zadziałały.

  1. Idź do terminalu.
  2. Zmień katalog na lokalizację, w której znajduje się plik rake.
  3. uruchom polecenie rake nazwa_zadania.
  4. W powyższym przypadku uruchom rake iqmedier - uruchomi tylko zadanie iqmedir.
  5. uruchom prowizję euroads - uruchomi tylko zadanie euroads.
  6. Aby uruchomić wszystkie zadania w tym pliku przypisać następujące wewnątrz samego pliku i wykonywania prowizji wszystko

    task :all => [:iqmedier, :euroads, :mikkelsen, :orville ] do #This will print all the tasks o/p on the screen 
    end 
    
Powiązane problemy