web-dev-qa-db-fra.com

La tâche rake de Rails simples refuse de fonctionner avec l'erreur "Je ne sais pas comment construire une tâche", pourquoi?

J'ai cette tâche simple de rake qui refuse de courir. Je ne vois tout simplement pas pourquoi cela semble correct. Qui peut m'identifier à l'erreur probablement très simple que j'ai commise? Je vous remercie!

/lib/tasks/reindex.rb:

namespace :db do

  desc "Tire reindex profiles"

  task :reindex => :environment do
    system "cd #{Rails.root} && rake environment tire:import CLASS='Profile' FORCE=true"
  end

end

L'erreur:

rake db:reindex
rake aborted!
Don't know how to build task 'db:reindex'
38
Rubytastic

Renommez votre fichier en reindex.rake et cela devrait fonctionner.

Connexes: Comment créer la tâche 'db: populate'

84
cjc343

Vous pouvez également obtenir cette erreur si vous oubliez de mettre l'espace de noms avant le nom de votre tâche. (c'est-à-dire: réindexer au lieu de db: réindexer)

14
esc_rtn

N'oubliez pas de vérifier que vous appelez le nom de la tâche et non le nom du fichier . Le mieux, c'est qu'ils soient nommés de la même manière.

2
Morgan

L'extension de fichier pour les tâches rake doit être '.rake'. 

Si vous avez nommé votre fichier comme «.rb», alors rake ne le trouvera pas et vous questionnerez votre santé mentale pendant plusieurs minutes avant de finir ici.

0
David Hempy

Cette erreur m’arrive parce que le nom de l’espace de nommage est souligné

As is: deploy_app  (not work)
To be: deployapp   (working)
0
super1ha1