NoMethodError: undefined method `last_comment' after upgrading to rake 11 NoMethodError: undefined method `last_comment' after upgrading to rake 11 ruby-on-rails ruby-on-rails

NoMethodError: undefined method `last_comment' after upgrading to rake 11


Rake 11.0.1 removes the last_comment method which Rails 2.3 rspec-core (< 3.4.4) uses. Therefore until/if a patch is released we need to pin rake to an older version in Gemfile:

gem 'rake', '< 11.0'

then:

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

We are now using rake 10.5.0 which still has the last_comment method and our rake tasks will work again.

UPDATE: This has now been fixed in rspec, so the only thing necessary should be updating rspec.


in Rails quick fix can be edit ./Rakefile (in your app folder)

and add these lines before calling Rails.application.load_tasks:

module TempFixForRakeLastComment  def last_comment    last_description  end endRake::Application.send :include, TempFixForRakeLastComment

so entire Rakefile might look like

  require File.expand_path('../config/application', __FILE__)  require 'rake'  require 'resque/tasks'+ # temp fix for NoMethodError: undefined method `last_comment'+ # remove when fixed in Rake 11.x+ module TempFixForRakeLastComment+   def last_comment+     last_description+   end + end+ Rake::Application.send :include, TempFixForRakeLastComment+ ### end of temfix+   task "resque:preload" => :environment  Rails.application.load_tasks


Update to the latest Rspec gem does the work:

bundle update rspec-rails