it-swarm.com.de

Rails, wie man Rake-Task ausführt

Wie führe ich diese Rake-Datei in Terminal/Console aus?

meine statistik.rake in lib/aufgaben

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
73
Rails beginner

Sie sollten Rake-Tasks nicht in der Konsole Rails ausführen, sondern in der Terminal-/Eingabeaufforderung durch Ausführen

rake task_name

Wenn Sie wirklich muss eine Rechenaufgabe in Ruby ausführen, sollten Sie in der Lage sein, Folgendes zu tun:

Rake::Task['task_name'].invoke

dies geschieht jedoch normalerweise nur in einer Rake-Task selbst, um eine andere auszuführen.

Erstellen Sie die folgende neue Aufgabe in Ihrem Namespace, um mehrere Aufgaben in demselben Namespace mit einer einzelnen Aufgabe auszuführen:

task :runall => [:iqmedier, :euroads, :mikkelsen, :orville ] do
  # This will run after all those tasks have run
end
109
Andrew Marshall
Rake::Task['reklamer:orville'].invoke

oder

Rake::Task['reklamer:orville'].invoke(args)
22
Luke W

Haben Sie rake reklamer:iqmedier ausprobiert?

Meine benutzerdefinierten Rake-Aufgaben befinden sich im lib-Verzeichnis, nicht in lib/task. Nicht sicher, ob das wichtig ist.

20
CharlieMezak

Manchmal werden Ihre Rake-Aufgaben nicht in der Konsole geladen. In diesem Fall können Sie die folgenden Befehle ausführen

require "rake"
YourApp::Application.load_tasks
Rake::Task["Namespace:task"].invoke
5
Prem

In Rails 4.2 funktionierten die oben genannten Methoden nicht.

  1. Gehe zum Terminal. 
  2. Wechseln Sie in das Verzeichnis, in dem sich Ihre Rake-Datei befindet.
  3. führe rake task_name aus.
  4. In diesem Fall führen Sie Rake iqmedier aus. Es wird nur die iqmedir-Task ausgeführt.
  5. rake euroads ausführen - führt nur die Aufgabe von euroads aus.
  6. Um alle Tasks in dieser Datei auszuführen, weisen Sie die folgende Datei in der -Datei zu und führen Sie Rake All aus

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

Wenn Sie nicht sicher sind, wie Sie eine Rake-Aufgabe ausführen, sollten Sie zuerst herausfinden, welche Aufgaben Sie haben, und es werden auch die Befehle zur Ausführung der Aufgaben aufgelistet.

Führen Sie rake --tasks auf dem Terminal aus.

Es werden die Aufgaben wie folgt aufgelistet:

rake gobble:dev:prime             
rake gobble:dev:reset_number_of_kits                                    
rake gobble:dev:scrub_prod_data

Sie können dann Ihre Aufgabe mit folgendem Befehl ausführen: rake gobble:dev:prime.

0
Ruto Collins

hier ist ein sehr gutes Tutorial zum Ausführen von Rechenaufgaben, das ich hilfreich fand.

http://jasonseifer.com/2010/04/06/runde-unterricht

0