Lors de l'exécution d'une rake
tâche que j'obtiens:
NoMethodError: méthode non définie `last_comment 'pour
Ce fut après bundle update
quoi tiré dans la nouvelle version de rake, 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: méthode non définie `last_comment 'pour # <Rake :: Application: 0x007ff0cf37be38>
Versions
- Rails 3.2.11
- Râteau 11.0.1
bundle exec
après cela, comment utiliser encorerake
sans le bundle exec ??rake db:create:all
jette cette exception.last_comment
, où dans la base de code c'est je ne me souviens pas. Je ne sais pas si Rails 4 appelle égalementlast_comment
. Mais vous pouvez vérifier la base de code des rails, passer à la branche Rails 4 et grep pour "last_comment" dansRakefile
et*.task
.dans Rails, la correction rapide peut être modifiée
./Rakefile
(dans le dossier de votre application)et ajoutez ces lignes avant d'appeler
Rails.application.load_tasks
:si entier
Rakefile
pourrait ressembler àla source
last_comment
été annulée et sera désormais supprimée dans rake 12.0 à la place.La mise à jour vers la dernière
Rspec
gemme fait le travail:bundle update rspec-rails
la source
Améliorez simplement le bijou
rspec-rails
Maintenant:
gem 'rspec-rails', '~> 3.5', '>= 3.5.2'
câlins!
la source
gem 'rspec-rails', '~> 3.6'
sauvé ma vie, merci beaucoup !! Et je pensais avoir quelque chose comme last_comment dans mon code! LOLC'est un problème de rake qui a déjà été résolu.
La réponse par @ équivalent8 est un patch de singe et doit être évité.
Comme le souligne @Kris, il s'agit d'un problème isolé
rake 11.0.1
. Depuis que @Kris a publié sa réponse, de nouvelles versions de Rake sont disponibles et, idéalement, vous pourrez rester avec le temps et ne pas être épinglé à une ancienne version de rake. Croyez-moi, j'y suis allé et ce n'est pas une bonne idée si vous pouvez l'aider. Ce n'est pas non plus un problème avec Rails 2.3 ou n'importe quelle version de rails.Tout râteau
< v11.0.1
ou> v11.0.1 and < v12
fonctionnera, mais cela reste un travail autour et doit également être évité; idéalement, vous pourrez rester avec le temps.Étant donné qu'elle
last_comment
est obsolète, la dépendance elle-même doit être mise à niveau. Dans mon cas, c'estrspec-core
ce qui n'a corrigé ce problème que dans la v3.4.4 .Le correctif
Mettez à niveau votre dépendance vers une version qui n'appelle pas
last_comment
mais qui appelle à lalast_description
place. Son probablementrspec
et la miserspec-core
à niveau vers 3.4.4 ou une version supérieure le résoudra.rspec-core
<3.4.4 appelslast_comment
.Si votre dépendance n'a pas de version qui n'appelle pas
last_description
, soyez un bon citoyen et soumettez un PR pour le réparer :)la source