Wenn rake
ich eine Aufgabe ausführe, bekomme ich:
NoMethodError: undefinierte Methode `last_comment 'für
Dies war nach bundle update
dem in der neuen Version von Rake, Version gezogen 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: undefinierte Methode `last_comment 'für # <Rake :: Application: 0x007ff0cf37be38>
Versionen
- Schienen 3.2.11
- Rechen 11.0.1
bundle exec
, wie kann ich nur nochrake
ohne das Bundle Exec verwenden?rake db:create:all
wirft diese Ausnahme.last_comment
, an die ich mich in der Codebasis nicht erinnere. Ich weiß nicht, ob Rails 4 auch anruftlast_comment
. Sie können jedoch die Rails-Codebasis auschecken, zum Rails 4-Zweig wechseln und nach "last_comment" inRakefile
und suchen*.task
.In Rails kann die Schnellkorrektur bearbeitet werden
./Rakefile
(in Ihrem App-Ordner).und fügen Sie diese Zeilen hinzu, bevor Sie anrufen
Rails.application.load_tasks
:so
Rakefile
könnte ganz aussehenquelle
last_comment
zurückgesetzt wurde und stattdessen in Rake 12.0 entfernt wird.Das Update auf das neueste
Rspec
Juwel erledigt die Arbeit:bundle update rspec-rails
quelle
Rüste einfach den Edelstein auf
rspec-rails
Jetzt:
gem 'rspec-rails', '~> 3.5', '>= 3.5.2'
Umarmungen!
quelle
gem 'rspec-rails', '~> 3.6'
hat mein Leben gerettet, vielen Dank !! Und ich dachte, ich hätte so etwas wie last_comment in meinem Code! LOLDies ist ein Problem bei Rake , das bereits behoben wurde.
Die Antwort von @ äquivalent8 ist ein Affenfeld und sollte vermieden werden.
Wie @Kris hervorhebt, ist dies ein isoliertes Problem
rake 11.0.1
. Da @Kris seine Antwort veröffentlicht hat, sind neue Versionen von Rake verfügbar. Idealerweise können Sie mit der Zeit bleiben und nicht an eine alte Version von Rake gebunden sein. Glauben Sie mir, ich war dort und es ist keine gute Idee, wenn Sie helfen können. Auch dies ist kein Problem mit Rails 2.3 oder einer anderen Version von Rails.Jeder Rechen
< v11.0.1
oder> v11.0.1 and < v12
wird funktionieren, aber dies ist immer noch eine Problemumgehung und sollte auch vermieden werden. Idealerweise können Sie mit der Zeit bleiben.Da
last_comment
es veraltet ist, sollte die Abhängigkeit selbst aktualisiert werden. In meinem Fall war es das,rspec-core
was dies übrigens nur in v3.4.4 behoben hat .Die Reparatur
Aktualisieren Sie Ihre Abhängigkeit auf eine Version, die nicht
last_comment
anruft, sondernlast_description
stattdessen anruft . Es ist wahrscheinlichrspec
und ein Upgraderspec-core
auf 3.4.4 oder höher wird es beheben.rspec-core
<3.4.4 Anrufelast_comment
.Wenn Ihre Abhängigkeit keine Version hat, die nicht anruft
last_description
, seien Sie ein guter Bürger und reichen Sie eine PR ein, um das Problem zu beheben :)quelle