Rails comment exécuter la tâche de râteau

Comment puis-je exécuter ce fichier rake dans le terminal / la console?

mon statistik.rake dans lib / tasks

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 

Vous ne devriez pas exécuter les tâches Rake dans la console Rails, mais plutôt dans l’invite Terminal / Command en cours d’exécution.

 rake task_name 

Si vous devez vraiment exécuter une tâche Rake dans Ruby, vous devriez pouvoir:

 Rake::Task['task_name'].invoke 

mais cela n’est généralement fait que dans une tâche Rake pour exécuter une autre tâche.

Pour exécuter plusieurs tâches dans le même espace de noms avec une seule tâche, créez la nouvelle tâche suivante dans votre espace de noms:

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

ou

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

Avez-vous essayé rake reklamer:iqmedier ?

Mes tâches de rake personnalisées se trouvent dans le répertoire lib, pas dans lib / tasks. Je ne sais pas si cela compte.

Parfois, vos tâches de rake ne sont pas chargées dans la console. Dans ce cas, vous pouvez essayer les commandes suivantes

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

Dans les rails 4.2, les méthodes ci-dessus ne fonctionnaient pas.

  1. Allez au terminal.
  2. Changez le répertoire à l’emplacement où votre fichier rake est présent.
  3. Exécuter rake task_name.
  4. Dans le cas ci-dessus, exécutez rake iqmedier – ne lancera que la tâche iqmedir.
  5. run rake euroads – exécutera uniquement la tâche euroads.
  6. Pour exécuter toutes les tâches de ce fichier, affectez les éléments suivants dans le même fichier et exécutez tous les rake

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

Voici un très bon tutoriel sur l’exécution des tâches de râteau que j’ai trouvé utile.

http://jasonseifer.com/2010/04/06/rake-tutorial