NoMethodError: undefined method `last_comment' après la mise à niveau de rake 11
Lors de l'exécution de toute rake
tâche-je obtenir:
NoMethodError: undefined method `last_comment " pour
C'était après bundle update
qui a tiré dans la nouvelle version de râteau, version 11.0.1
.
$ grep rake Gemfile.lock
rake
rake (>= 0.8.7)
rake (11.0.1)
rake
$ bundle update
$ bundle exec rake db:drop # any rake task
NoMethodError: undefined method `last_comment " pour #< Râteau::Application:0x007ff0cf37be38>
Versions
- Rails 3.2.11
- Râteau 11.0.1
Vous devez vous connecter pour publier un commentaire.
Râteau 11.0.1 supprime la
last_comment
méthodeRails 2.3rspec-core (< 3.4.4) utilise. Par conséquent, jusqu'à ce que/si un patch est sorti, nous avons besoin à la broche râteau à une version plus ancienne dans le Gemfile:alors:
Nous sommes maintenant à l'aide du râteau 10.5.0 qui a encore le
last_comment
méthode et notrerake
tâches ne fonctionne de nouveau.Mise à JOUR: Cela a été corrigé dans rspec, donc la seule chose qui doit être mise à jour rspec.
bundle exec
après cela, comment juste encore utiliserrake
sans le bundle exec??rake db:create:all
lève cette exception.last_comment
, où dans la base de code c'est que je ne m'en souviens pas. Je ne sais pas si les Rails 4 appelslast_comment
. Mais vous pourriez checkout les rails de la base de code, de basculer sur les Rails 4 de la branche et de grep pour "last_comment" dansRakefile
et*.task
.last_comment
, bien qu'il existe des références dans les rails des tests, ils ne seraient pas la cause de cette erreur. #confusdans les Rails quick fix peut être modifier
./Rakefile
(dans votre dossier app)et ajouter ces lignes avant d'appeler
Rails.application.load_tasks
:donc toute la
Rakefile
pourrait ressemblerlast_comment
suis revenue et va maintenant être retiré en commission de 12,0 à la place.Mise à jour pour la dernière
Rspec
gem fait le travail:bundle update rspec-rails
~> 2.0
à~> 3.5
a fonctionné pour moiC'est un question de rake qui a été déjà abordé.
La réponse par @equivalent8 est un singe patch et doit être évitée.
Comme @Kris points, c'est un problème isolé à
rake 11.0.1
. Depuis @Kris a posté sa réponse il existe de nouvelles versions de Râteau disponibles et, idéalement, vous serez en mesure de rester avec le temps et ne pas être épinglé à une ancienne version de rake. Croyez-moi, j'ai été là, et ce n'est pas une bonne idée si vous pouvez l'aider. Aussi ce n'est pas un problème avec les Rails 2.3 ou une version de rails.Un Rake
< v11.0.1
ou> v11.0.1 and < v12
va fonctionner, mais c'est toujours un travail autour de et de, devraient également être évités; idéalement, vous aurez être en mesure de rester avec le temps.Depuis
last_comment
est déprécié la dépendance elle-même doit être mis à niveau. Dans mon cas, c'étaitrspec-core
qui, d'ailleurs, seulement corrigé cela dans v3.4.4.Le Correctif
Mise à niveau de votre dépendance à une version qui ne fait pas appel
last_comment
mais les appelslast_description
à la place. C'est probablementrspec
et la mise à niveaurspec-core
de 3.4.4 ou plus permettra de le corriger.rspec-core
< 3.4.4 appelslast_comment
.Si votre dépendance à ne pas avoir une version qui ne fait pas appel
last_description
, être un bon citoyen et de soumettre un PR de résoudre le problème 🙂Juste mise à niveau de la gemme
rspec-rails
Maintenant:
gem 'rspec-rails', '~> 3.5', '>= 3.5.2'
câlins!
gem 'rspec-rails', '~> 3.6'
sauvé ma vie, merci beaucoup!! Et j'ai pensé que j'ai quelque chose comme last_comment à l'intérieur de mon code! LOL