1. ホーム
  2. ruby-on-rails

[解決済み] NoMethodError: rake 11 にアップグレードすると、未定義のメソッド `last_comment' が発生します。

2022-06-17 23:03:56

質問

任意の rake タスクを実行すると、次のようになります。

NoMethodError: 未定義のメソッド `last_comment' です。

これは bundle update で、rake の新しいバージョン、バージョン 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' for #< Rake::Application:0x007ff0cf37be38>

バージョン

  • Rails 3.2.11
  • Rake 11.0.1

どのように解決するのですか?

Rake 11.0.1 は削除されます。 last_comment メソッドで Rails 2.3 rspec-core (< 3.4.4) が使用しています。そのため、パッチがリリースされるまでは、あるいはリリースされたとしても、Gemfileでrakeを古いバージョンに固定する必要があります。

gem 'rake', '< 11.0'

にしてから

$ bundle update
$ grep rake Gemfile.lock 
      rake
      rake (>= 0.8.7)
    rake (10.5.0)
      rake
  rake (< 11.0)

現在、rake 10.5.0 を使用していますが、これはまだ last_comment メソッドがあり、私たちの rake タスクは再び動作するようになります。

アップデイト : これは現在rspecで修正されているので、必要なのはrspecを更新することだけです。