I just updated Rake to the latest version (0.9.0.beta.4
) and the rake
command ends up with the following error message:
rake aborted!
undefined method `task' for #<Anelis::Application:0x9223b6c>
Here is the trace:
undefined method `task' for #<Anelis::Application:0x97ef80c>
/usr/local/rvm/gems/ruby-1.9.2-p136/gems/railties-3.0.3/lib/rails/application.rb:214:in `initialize_tasks'
/usr/local/rvm/gems/ruby-1.9.2-p136/gems/railties-3.0.3/lib/rails/application.rb:139:in `load_tasks'
/usr/local/rvm/gems/ruby-1.9.2-p136/gems/railties-3.0.3/lib/rails/application.rb:77:in `method_missing'
/home/amokrane/Documents/prog/web/learning_rails/anelis/Rakefile:7:in `load_string'
/usr/local/rvm/gems/ruby-1.9.2-p136/gems/rake-0.9.0.beta.4/lib/rake/environment.rb:28:in `eval'
/usr/local/rvm/gems/ruby-1.9.2-p136/gems/rake-0.9.0.beta.4/lib/rake/environment.rb:28:in `load_string'
/usr/local/rvm/gems/ruby-1.9.2-p136/gems/rake-0.9.0.beta.4/lib/rake/environment.rb:16:in `load_rakefile'
/usr/local/rvm/gems/ruby-1.9.2-p136/gems/rake-0.9.0.beta.4/lib/rake/application.rb:495:in `raw_load_rakefile'
/usr/local/rvm/gems/ruby-1.9.2-p136/gems/rake-0.9.0.beta.4/lib/rake/application.rb:78:in `block in load_rakefile'
/usr/local/rvm/gems/ruby-1.9.2-p136/gems/rake-0.9.0.beta.4/lib/rake/application.rb:129:in `standard_exception_handling'
/usr/local/rvm/gems/ruby-1.9.2-p136/gems/rake-0.9.0.beta.4/lib/rake/application.rb:77:in `load_rakefile'
/usr/local/rvm/gems/ruby-1.9.2-p136/gems/rake-0.9.0.beta.4/lib/rake/application.rb:61:in `block in run'
/usr/local/rvm/gems/ruby-1.9.2-p136/gems/rake-0.9.0.beta.4/lib/rake/application.rb:129:in `standard_exception_handling'
/usr/local/rvm/gems/ruby-1.9.2-p136/gems/rake-0.9.0.beta.4/lib/rake/application.rb:59:in `run'
/usr/local/rvm/gems/ruby-1.9.2-p136/gems/rake-0.9.0.beta.4/bin/rake:31:in `<top (required)>'
/usr/local/rvm/gems/ruby-1.9.2-p136/bin/rake:19:in `load'
/usr/local/rvm/gems/ruby-1.9.2-p136/bin/rake:19:in `<main>'
Anyone experienced the same issue? What could possibly be wrong? Note that I am running Rails 3.0.3
, you may also be interested in the content of my Gemfile:
source 'http://rubygems.org'
gem 'rails', '3.0.3'
gem 'sqlite3-ruby', :require => 'sqlite3'
gem 'mysql2'
gem 'legacy_data'
gem 'resources_controller', :git => 'git://github.com/ianwhite/resources_controller'
gem 'will_paginate', '3.0.pre' # pagination
gem 'jquery-rails', '>= 0.2.6'
gem "rmagick" # sudo aptitude install libmagick9-dev
gem "paperclip", "~> 2.3"
gem "nested_form", :git => "git://github.com/madebydna/nested_form.git"
gem "meta_search"
gem "hirb"
gem "devise"
gem "rails_admin", :git => "git://github.com/sferik/rails_admin.git"
How can I fix this problem?
I use rvm, but uninstalling doesn't help me. So I manually remove all 0.9 files from
.rvm/gems/ruby@global
directory and everything becomes as before!without the need to uninstall Rake 0.9.x, add
to your Gemfile and just type
I've created an issue for rails_admin about this same error.
The answer:
It's a problem in Rake (0.9.0), it was announced by DHH on Twitter.
Note: This was just fixed in Rails 3.0.8
The new version of Rake does not put its DSL commands (task, file, desc, import, etc.) in the root of the Object namespace anymore (placing them in Object meant every object has a task command, not very nice. The DSL commands are available by mixing in the
Rake::DSL module
into any module needing the commands.Until Ruby on Rails is updated to work with Rake 0.9.x, put the following in your project Rakefile after "require rake" and before the call to
Application.load_tasks
:This has been fixed in Ruby on Rails 3.0.8.rc1 which should be released in a few days time.
As explained in mordaroso's answer, there is a problem in Rake 0.9.0. You need to temporarily downgrade Rake in order to avoid it:
run:
gem uninstall rake -v 0.9
(addsudo
unless you uservm
)add to your Gemfile:
gem 'rake', '~> 0.8.7'
and then run:
bundle update
You can skip the first step, but then you have to run
rake
usingbundle exec
, for example:Otherwise you get the following error.
Update
As Alex Chaffee noticed in a comment for Pablo Cantero's answer, that you might need to do the following to uninstall Rake if you still see the problem
Also try the solution suggested in Duke's answer.