2013-10-09 2 views
12

ich eine Harke Aufgabe definiert habe laufen, wie in einer Datei file_locker_task.rakeWie eine Harke Aufgabe durch Befehlszeile in Schienen

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

genannt folgt Wie kann ich von der Kommandozeile aus dieser Rake Aufgabe ausführen? Ich habe versucht:

rake myspace:process und rake process aber beide einen Fehler wie diese werfen:

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

wo haben Sie diese Datei abgelegt? – tihom

+1

auch sollte es die Erweiterung '.rake' haben – tihom

+0

Entschuldigung die Erweiterung ist Rake – Kalanamith

Antwort

23
  1. Run rake -T -A von Ihrem Rails Home-Verzeichnis alle Aufgaben zu sehen, die Harke kennt. Ihre müssen in dieser Liste sein, damit Rake es ausführen kann.
  2. Standardmäßig sucht Rake in einer Rails-App im Verzeichnis lib/tasks und seinen Unterverzeichnissen nach Ihren .rake Dateien. Prüfe das. (Ich vermute, das ist das Problem.)
+0

es zeigt die Aufgabe als Rake file_locker_task: Prozess wie kann ich das ausführen? – Kalanamith

+0

Ja. Sie würden es genau so ausführen, wie es es buchstabiert, mit bundle exec vor: 'bundle exec rake file_locker_task: process ', in diesem Fall. – Dogweather

+0

Rails ist es egal, wo Sie Ihre '.rake' Dateien ablegen. Meinst du, Rake sieht nur 'lib/tasks'? Btw meine Antwort siehe unten) – hawk

-1

Nach docs

Irgendwelche Rubin-Datei (einschließlich anderer rakefiles) können mit einem Standard-Ruby-require Befehl enthalten sein.

-

Zusätzliche Rake-Dateien (mit der Dateierweiterung „.rake“) kann auf der obersten Ebene eines Projekts (dh das gleiche Verzeichnis, das die Haupt Rakefile enthält befindet sich in rakelib Verzeichnis abgelegt). Außerdem können Rails-Projekte zusätzliche Rake-Dateien im Verzeichnis lib/tasks enthalten.