Ruby on Rails et de l'inclinaison des problèmes: uninitialized constant Râteau::DSL
Je suis vraiment très frustrant question: Râteau est muet.
Voici comment le problème vient à propos:
$ rails new test_app
$ rails generate scaffold new_scaffold field1:string field2:text
À la fois de ces travaux, mais ensuite quand je fais cela,
$ rake db:migrate
J'obtiens l'erreur suivante.
(in /home/mikhail/test_app)
rake aborted!
uninitialized constant Rake::DSL
/usr/lib/ruby/1.9.1/rake.rb:2482:in `const_missing'
/usr/lib/ruby/gems/1.9.1/gems/rake-0.9.0/lib/rake/tasklib.rb:8:in `<class:TaskLib>'
/usr/lib/ruby/gems/1.9.1/gems/rake-0.9.0/lib/rake/tasklib.rb:6:in `<module:Rake>'
/usr/lib/ruby/gems/1.9.1/gems/rake-0.9.0/lib/rake/tasklib.rb:3:in `<top (required)>'
/usr/lib/ruby/gems/1.9.1/gems/rake-0.9.0/lib/rake/rdoctask.rb:20:in `require'
/usr/lib/ruby/gems/1.9.1/gems/rake-0.9.0/lib/rake/rdoctask.rb:20:in `<top (required)>'
/usr/lib/ruby/gems/1.9.1/gems/railties-3.0.7/lib/rails/tasks/documentation.rake:1:in `require'
/usr/lib/ruby/gems/1.9.1/gems/railties-3.0.7/lib/rails/tasks/documentation.rake:1:in `<top (required)>'
/usr/lib/ruby/gems/1.9.1/gems/railties-3.0.7/lib/rails/tasks.rb:15:in `load'
/usr/lib/ruby/gems/1.9.1/gems/railties-3.0.7/lib/rails/tasks.rb:15:in `block in <top (required)>'
/usr/lib/ruby/gems/1.9.1/gems/railties-3.0.7/lib/rails/tasks.rb:6:in `each'
/usr/lib/ruby/gems/1.9.1/gems/railties-3.0.7/lib/rails/tasks.rb:6:in `<top (required)>'
/usr/lib/ruby/gems/1.9.1/gems/railties-3.0.7/lib/rails/application.rb:214:in `require'
/usr/lib/ruby/gems/1.9.1/gems/railties-3.0.7/lib/rails/application.rb:214:in `initialize_tasks'
/usr/lib/ruby/gems/1.9.1/gems/railties-3.0.7/lib/rails/application.rb:139:in `load_tasks'
/usr/lib/ruby/gems/1.9.1/gems/railties-3.0.7/lib/rails/application.rb:77:in `method_missing'
/home/mikhail/test_app/Rakefile:7:in `<top (required)>'
/usr/lib/ruby/1.9.1/rake.rb:2373:in `load'
/usr/lib/ruby/1.9.1/rake.rb:2373:in `raw_load_rakefile'
/usr/lib/ruby/1.9.1/rake.rb:2007:in `block in load_rakefile'
/usr/lib/ruby/1.9.1/rake.rb:2058:in `standard_exception_handling'
/usr/lib/ruby/1.9.1/rake.rb:2006:in `load_rakefile'
/usr/lib/ruby/1.9.1/rake.rb:1991:in `run'
/usr/bin/rake:31:in `<main>'
J'ai regardé sur Internet pour les les mêmes mêmes erreurs, et les gens en ont eu. Seulement personne n'a jamais semble résoudre le problème!
Comment puis-je résoudre ce problème?
Vous devez vous connecter pour publier un commentaire.
Un tweet de DHP plus tôt. Râteau .9.0 ruptures de Rails et de plusieurs autres choses, vous avez besoin de:
dans votre Gemfile.
bundle update rake
premier. Puis j'ai vérifié avecbundle show rake
. Il faut dire 0.8.7. Puisrake db:migrate
.gem "rake", "!= 0.9.0"
. Cela évite de le cassé version 0.9.0, mais mettra à jour plus récente d'une fois un plus fraîche de presse est publié (en supprimant ce plus tard, ne fera pas de mal, mais en gardant cela ne devrait pas faire de mal non plus).heroku rake db:migrate
. Le problème est résolu.heroku rake db:migrate
et cela semblait le fixer. n'oubliez pas d'ajouter et valider ces modifications git avant de continuer 😉sudo gem install rake
à assurez-vous que lerake
version que j'ai est appeler à partir de la ligne de commande n'a pas été 0.8.7.J'ai fait quelques recherches juste après ma réponse précédente (désolé, je dois le faire avant).
Tous les problèmes sont résolus avec le Râteau gem 0.9.2.. j'ai suivi ces étapes:
gem install rake -v=0.9.2
(j'ai eu la 0.9.1 gem)gem uninstall rake -v=0.9.1
bundle update
puis le
db:migrate
a montré un avertissement,WARNING: Global access to Rake DSL methods is deprecated. Please....
Il a été résolu en ajoutant ce qui suit à la commission de fichier.
J'ai omis le
module ::RakeFileUtils extend Rake::FileUtilsExtend
option suggérée par @databyte.Cela signifie que le Râteau gem 0.9.2 fonctionne très bien!
RakeFile
doit être avantrequire 'rake'
- pris-moi 🙂gem uninstall rake -v=0.9.2
2)gem install rake -v=0.9.2
En passant par le Chapitre 2 de Railstutorial (demo_app) et s'est heurtée à ce problème. J'ai essayé toutes les autres réponses énumérés ici, mais ne pouvais pas le faire fonctionner jusqu'à ce que j'ai fait cela:
Mettre ceci dans votre Rakefile ci-dessus nécessitent des "rake":
via Comment fixer le uninitialized constant Râteau::DSL problème sur Heroku?
J'ai également réitéré son engagement et a poussé tous les fichiers sur Github et Heroku.
Tout ce que j'avais à faire était de les utiliser:
J'ai eu la version 0.9.2 déjà, juste besoin de l'installer.
Réinstaller le râteau gem et il devrait beau travail:
Si non, spécifier la version 0.8.7' dans votre Gemfile.
Si vous n'utilisez pas Bundler:
Puis choisissez désinstaller 0.9.0.
Si comme moi vous êtes coincé sur râteau 0.8.7, et vous êtes à l'aide de Rails 3.2.x puis railties ajoute une exigence de Râteau::DSL
Pour résoudre ce problème, vers le haut de votre Rakefile vous devez ajouter:
J'ai résolu le même problème avec les étapes suivantes:
Dans Le Gemfile:
Puis a couru ce sur la console:
Puis ajouter les lignes suivantes à Rakefile:
Rails 3.1.rc1 a été mis à jour. Pour votre propre Rakefiles, vous pouvez ajouter ce avant l'appel à load_tasks.
https://gist.github.com/4cd2bbe68f98f2f0249f
Mise à JOUR: Aussi remarqué qu'il est déjà répondu ici: Méthode non définie "tâche" à l'aide du Râteau 0.9.0
J'ai eu le même problème et a dû utiliser le râteau 0.8.7 gem au lieu de 0.9.0.
Je suis un utilisateur de Windows XP et j'ai eu le même problème.
Je suis entré gem "râteau", "0.8.7" dans le gemfile, et puis tapé la suite à partir de la fenêtre commande.
Cela a réglé mon problème.
bundle install --path=vendor/bundle
bundle exec rake db:migrate
Pour démarrer le serveur type
bundle exec rails s
. Utilisation bundle exec et vous serez sûr que vous utilisez le droit de gemmes (version requise) pour votre projet.Aussi je vous recommande d'ajouter
vendor/bundle
à.gitignore
si vous utilisezgit
et de créer un alias pourbundle exec
. Si vous utilisezzsh
vous pouvez suivre cette approcheMême que Branstar au - dessus de la grâce Branstar!
J'ai suivi les instructions de la section Rails 3 sur Windows.
Tous travaillé jusqu'à ce que le "rake db:migrate" la partie qui m'a donné le même résultat que post original.
J'ai couru:
J'ai couru de nouveau:
Ensuite, j'ai été en mesure de commencer le Ruby on Rails server et avait tout mis en place.
Merci encore Branstar 🙂
Que je ressens pour toi (mikhailvs), c'est vraiment frustrant. J'ai été fou pendant presque une journée complète. J'ai même désinstallé le Rubis et l'ensemble de ses fichiers dépendants et à l'arrêt de mon PC, mais j'ai toujours le même problème.
Ce que j'ai obtenu le message d'erreur est le problème avec le Râteau 0.9.2. Il me semble qu'il n'était pas complètement installé. J'ai donc dû réinstaller
gem install rake -v=0.9.2
Je n'étais pas sûr si j'ai rake –v0.9.1 installé. Pour m'en assurer j'en suis sûr, j'ai essayé de supprimer l'ancienne version avec
gem uninstall rake -v=0.9.1
. Mais est m'a montré le message d'erreurOK, donc j'ai vérifié tous Râteau répertoires sur mon PC, et trouvé seulement j'avais Râteau 0.9.2.
Ensuite, pour vérifier si tout allait bien, j'ai migré avec
rake db:migrate
. Et cela a fonctionné 🙂Je pense que je n'ai pas de Rake 0.9.1 parce que je le nettoyage installé Ruby (rubyinstaller-1.9.2-p180 - sur mon Windows 7 system) et de toutes les gemmes. En attendant Râteau 0.9.2 n'était pas complètement installé.
Désinstallation avec "gem désinstaller râteau" a travaillé pour moi, j'ai eu 2 versions installées, donc je plaisanterie a une nouvelle réinstallation.
"rake db:create", assurez-vous que la base de données existe
et puis "rake db:migrate" pour sceller l'affaire.
J'ai eu le même problème à l'aide du Râteau 0.9.2.2. J'ai résolu ce problème en utilisant le bundle exec.
Pour les Rails 2.3 montage
lib/tasks/rspec.rake
comme dans ce commit a fonctionné pour moi:https://github.com/dchelimsky/rspec-rails/pull/11/files
Installer râteau 0.8.7 et de désinstaller 0.9.2.2
Maintenant utiliser
je pense que cela va vous aider
😉
Exécuter
cela fonctionne pour moi.