Je travaille sur le livre de tutoriel Ruby on Rails 3 et j'ai tapé ce qui suit sur la ligne de commande:
rake db:migrate
qui a produit l'avertissement suivant.
WARNING: Global access to Rake DSL methods is deprecated. Please Include
... Rake::DSL into classes and modules which use the Rake DSL methods.
WARNING: DSL method DemoApp::Application#task called at /Users/imac/.rvm/gems/ruby-1.9.2-p180@rails3tutorial/gems/railties-3.0.7/lib/rails/application.rb:215:in `initialize_tasks'
Je ne sais pas quoi faire à ce sujet ni comment travailler avec. Je ne connais aucune autre commande pour Rake.
Comment puis-je résoudre ce problème?
gem uninstall rake -v=0.9.1
. Mon erreur de ne pas être clair. Merci pour la clarification Antonio! Cheers, BrianL'ajout
include Rake::DSL
au Rakefile avant que les applications load_tasks ne soient appelées a également fonctionné pour moi.Donc, dans le cas de l'utilisateur ci-dessus, avant le
DemoApp::Application.load_tasks
dans le fichier Rakefile.la source
J'avais le même problème sous Windows avec le programme d'installation. Ruby 1.9.2 et Rails 3.0.9. Voici ce que j'ai fait:
Après cela, j'utilisais rake 0.9.2.
Ensuite, j'ai mis à jour le Rakefile dans le dossier racine de l'application comme suit:
require File.expand_path('../config/application', __FILE__) require 'rake' # If you named your application something other than SampleApp, change that below module ::SampleApp class Application include Rake::DSL end end module ::RakeFileUtils extend Rake::FileUtilsExt end SampleApp::Application.load_tasks
Comme indiqué dans le commentaire, assurez-vous que le nom de votre application est correct dans les deux lignes appropriées ci-dessus.
la source
heroku rake db:migrate
commande fonctionne, j'ai également dû ajouterrequire 'rake/dsl_definition'
au rakefile (au-dessus de la ligne require 'rake').Si vous voyez cela sur les versions ultérieures de Rails (comme 3. +), vous pouvez également vérifier que votre environnement est propre en utilisant RVM http://beginrescueend.com/ et en créant un ruby & gemset spécifique pour vos projets.
Utilisez un fichier .rvmrc par projet, cela vous garantira de ne pas intégrer d'anciens joyaux système dans vos projets. Ce qui m'a mordu avant.
Cela évite d'avoir à faire des singes avec les Rakefiles générés et autres.
la source
bundle exec rake db: migrate résoudra vos problèmes de version ruby
la source