2013-10-09 13 views
12

Mam zdefiniowane zadanie natarcia następująco w pliku o nazwie file_locker_task.rakeJak uruchomić zadanie natarcia po linii poleceń w szynach

namespace :myspace do 
    task :process => :environment do 
     FileLocker.lock_files 
    end 
end 

Jak mogę wykonać to zadanie natarcia z wiersza poleceń? Próbowałem:

rake myspace:process i rake process ale oba są rzuca błąd tak:

rake aborted! 
Don't know how to build task 'process' 
+1

gdzie umieściłeś ten plik? – tihom

+1

również powinno mieć rozszerzenie '.rake' – tihom

+0

Niestety rozszerzenie to rake – Kalanamith

Odpowiedz

23
  1. Uruchom rake -T -A z Rails katalogu domowym, aby zobaczyć wszystkie zadania, które wie o grabie. Twoja musi być na tej liście, aby prowizja mogła go uruchomić.
  2. Domyślnie w aplikacji Railsowej rake wygląda w katalogu lib/tasks i jego podkatalogach dla plików .rake. Sprawdź to. (Podejrzewam, że jest to problem).
+0

pokazuje zadanie jako rake file_locker_task: process jak mogę to uruchomić? – Kalanamith

+0

Tak. uruchomisz go dokładnie tak, jak to pisze, z pakietem exec z przodu: 'bundle exec rake file_locker_task: process', w tym przypadku. – Dogweather

+0

Rails nie dba o to, gdzie umieszczasz pliki '.rake'. Czy chodziło Ci tylko o Rake'a tylko o 'lib/tasks'? Przy okazji zobacz moją odpowiedź poniżej) – hawk

-1

Według docs

dowolny plik Ruby (łącznie z innymi rakefiles) może być dołączona do standardowego polecenia Ruby require.

-

Dodatkowe pliki natarcia (z rozszerzeniem „.rake”) może być umieszczony w katalogu rakelib znajduje się na najwyższym poziomie projektu (czyli ten sam katalog, który zawiera główną Rakefile). Ponadto projekty rails mogą zawierać dodatkowe pliki rake w katalogu lib/tasks.

Powiązane problemy