Ao executar qualquer rake
tarefa, recebo:
NoMethodError: método indefinido `last_comment 'para
Foi depois disso bundle update
que surgiu a nova versão do rake, versão 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étodo indefinido `last_comment 'para # <Rake :: Application: 0x007ff0cf37be38>
Versões
- Rails 3.2.11
- Rake 11.0.1
bundle exec
depois de fazer isso, como apenas ainda usarrake
sem o exec bundle?rake db:create:all
lança essa exceção.last_comment
, onde na base de código isso não me lembro. Não sei se o Rails 4 também chamalast_comment
. Mas você pode verificar a base de código do Rails, alternar para o ramo Rails 4 e grep para "last_comment" emRakefile
e*.task
.a correção rápida do Rails pode ser editada
./Rakefile
(na pasta do aplicativo)e adicione estas linhas antes de chamar
Rails.application.load_tasks
:tão inteiro
Rakefile
pode parecerfonte
last_comment
foi revertida e agora será removida no rake 12.0.A atualização para a
Rspec
gema mais recente faz o trabalho:bundle update rspec-rails
fonte
Basta atualizar a gema
rspec-rails
Agora:
gem 'rspec-rails', '~> 3.5', '>= 3.5.2'
abraços!
fonte
gem 'rspec-rails', '~> 3.6'
salvou minha vida, muito obrigado !! E eu pensei que eu tinha algo como last_comment dentro do meu código! LOLEste é um problema no rake que já foi abordado.
A resposta de @ equivalente8 é um patch de macaco e deve ser evitada.
Como o @Kris aponta, esse é um problema isolado
rake 11.0.1
. Como o @Kris postou sua resposta, há novas versões do Rake disponíveis e, idealmente, você poderá acompanhar os horários e não ficar preso a uma versão antiga do rake. Acredite, eu já estive lá e não é uma boa ideia se você pode ajudar. Além disso, este não é um problema no Rails 2.3 ou em qualquer versão do Rails.Qualquer rake
< v11.0.1
ou> v11.0.1 and < v12
funcionará, mas isso ainda é uma solução alternativa e também deve ser evitado; idealmente, você poderá ficar com os horários.Como
last_comment
está sendo preterido, a dependência em si deve ser atualizada. No meu caso, foi orspec-core
que aliás corrigiu isso apenas na v3.4.4 .O conserto
Atualize sua dependência para uma versão que não chama,
last_comment
mas chamalast_description
. Provavelmente, arspec
atualizaçãorspec-core
para 3.4.4 ou superior o corrigirá.rspec-core
<3.4.4 chamadaslast_comment
.Se a sua dependência não possui uma versão que não chama
last_description
, seja um bom cidadão e envie um PR para corrigi-lo :)fonte