Rake 0.9.0 'undefined method 'task' ' [duplicate] - ruby-on-rails-3

This question already has answers here:
Undefined method 'task' using Rake 0.9.0
(8 answers)
Closed 6 years ago.
Gemfile only contains rails 3.0.7 and sqlite3, all of a sudden rake will not run on any apps.The error started when running 'rake db:migrate'
Full trace output:
rake aborted!
undefined method `task' for #<NotWorking::Application:0x00000100ccc328>
/Users/codywright/.rvm/gems/ruby-1.9.2-p180/gems/railties-3.0.7/lib/rails/application.rb:215:in `initialize_tasks'
/Users/codywright/.rvm/gems/ruby-1.9.2-p180/gems/railties-3.0.7/lib/rails/application.rb:139:in `load_tasks'
/Users/codywright/.rvm/gems/ruby-1.9.2-p180/gems/railties-3.0.7/lib/rails/application.rb:77:in `method_missing'
/Users/codywright/Code/Rails/not_working/Rakefile:7:in `<top (required)>'
/Users/codywright/.rvm/gems/ruby-1.9.2-p180#global/gems/rake-0.9.0/lib/rake/rake_module.rb:25:in `load'
/Users/codywright/.rvm/gems/ruby-1.9.2-p180#global/gems/rake-0.9.0/lib/rake/rake_module.rb:25:in `load_rakefile'
/Users/codywright/.rvm/gems/ruby-1.9.2-p180#global/gems/rake-0.9.0/lib/rake/application.rb:495:in `raw_load_rakefile'
/Users/codywright/.rvm/gems/ruby-1.9.2-p180#global/gems/rake-0.9.0/lib/rake/application.rb:78:in `block in load_rakefile'
/Users/codywright/.rvm/gems/ruby-1.9.2-p180#global/gems/rake-0.9.0/lib/rake/application.rb:129:in `standard_exception_handling'
/Users/codywright/.rvm/gems/ruby-1.9.2-p180#global/gems/rake-0.9.0/lib/rake/application.rb:77:in `load_rakefile'
/Users/codywright/.rvm/gems/ruby-1.9.2-p180#global/gems/rake-0.9.0/lib/rake/application.rb:61:in `block in run'
/Users/codywright/.rvm/gems/ruby-1.9.2-p180#global/gems/rake-0.9.0/lib/rake/application.rb:129:in `standard_exception_handling'
/Users/codywright/.rvm/gems/ruby-1.9.2-p180#global/gems/rake-0.9.0/lib/rake/application.rb:59:in `run'
/Users/codywright/.rvm/gems/ruby-1.9.2-p180#global/gems/rake-0.9.0/bin/rake:31:in `<top (required)>'
/Users/codywright/.rvm/gems/ruby-1.9.2-p180/bin/rake:19:in `load'
/Users/codywright/.rvm/gems/ruby-1.9.2-p180/bin/rake:19:in `<main>'

I did: sudo gem uninstall rake -v 0.9 then added gem 'rake', '0.8.7' to my gem file.

Rather than downgraded your Rake, you can fix your application.rb file by adding the line:
include Rake::DSL
Just add that within the class Application and you should be good!
Example application.rb:
module AppName
class Application < Rails::Application
include Rake::DSL
end
end

gem 'rake', '0.8.7' in Gemfile works, if may also need to run bundle update rake if bundler complains about rake locked '0.9.0'.
Here is the issue on rake github page https://github.com/jimweirich/rake/issues/33

I am on jruby. Here are the exact commands that got me rid of the problem.
jruby -S gem uninstall rake
jruby -S gem install rake -v 0.8.7
edit Gemfile: Add this after gem 'rails':
gem 'rake', '0.8.7'
finally run:
jruby -S bundle update rake

Run these 2 lines at the command prompt. It will remove rake 0.9.0.
substitute your username where it shows "username"
GEM_HOME='/Users/username/.rvm/gems/ruby-1.9.2-p180#global' GEM_PATH='/Users/username/.rvm/gems/ruby-1.9.2-p180#global' gem uninstall rake
GEM_HOME='/Users/username/.rvm/gems/ruby-1.9.2-p180' GEM_PATH='/Users/username/.rvm/gems/ruby-1.9.2-p180' gem uninstall rake
Then install the correct gems:
rvm gem install mysql2 -v 0.2.7
rvm gem install rake -v 0.8.7
Update the MySQL gem (statment here show for x86_64 intel install):
env ARCHFLAGS="-arch x86_64" gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config
When you create a new app:
rails new -d mysql
you shouldn't need to change the gemfile or use bundle exec
I hope this makes sense. This post wont let me layout the syntax where it is readable.

Related

Spree generator not working when type 'rails g spree site'

Hi i'm a newbie for developing rails application and i have interest
in using 'spree' for my Ecommerce website.
I'm following this tutorial in spree from this site
http://guides.spreecommerce.com/getting_started.html
I made a fresh install as the tutorial above guided me. I made it to the part '5.1 Starting up Spree' using rails 1.9.3 and mysql
database. Everything was fine until i notice the login bar wasn't
appearing like the tutorial did.
I did some research which led me to this solution in
https://github.com/railsdog/deface/issues/12
what i understand from this article, it seems that the problem comes from a 'bug' from the defacement gem when using ruby 1.9.3 ,
but the problem does not appear in 1.9.2 so i changed my ruby
version into 1.9.2 to try it out.
After i installed ruby 1.9.2 i installed 'spree' gem I repeated the project (using mysql database) from the 'getting started
tutorial' to finish the tutorial.
now at part 4.4.2 where i type 'rake db:create' terminal outputs this
store$ rake db:create
store_test already exists
store_development already exists
When i try generate spree site by 'rails g spree:site' , terminal gives me this error
store rails g spree:site
create config/spree.yml /Users/macbookpro/.rvm/gems/ruby-1.9.2-p290/gems/spree_core-0.70.2/lib/generators/spree/site/site_generator.rb:16:in
`block in config_spree_yml': undefined method `version' for
Spree:Module (NoMethodError) from
/Users/macbookpro/.rvm/gems/ruby-1.9.2-p290/gems/thor-0.14.6/lib/thor/actions/create_file.rb:54:in
`call' from
/Users/macbookpro/.rvm/gems/ruby-1.9.2-p290/gems/thor-0.14.6/lib/thor/actions/create_file.rb:54:in
`render' from
/Users/macbookpro/.rvm/gems/ruby-1.9.2-p290/gems/thor-0.14.6/lib/thor/actions/create_file.rb:63:in
`block (2 levels) in invoke!' from
/Users/macbookpro/.rvm/gems/ruby-1.9.2-p290/gems/thor-0.14.6/lib/thor/actions/create_file.rb:63:in
`open' from
/Users/macbookpro/.rvm/gems/ruby-1.9.2-p290/gems/thor-0.14.6/lib/thor/actions/create_file.rb:63:in
`block in invoke!' from
/Users/macbookpro/.rvm/gems/ruby-1.9.2-p290/gems/thor-0.14.6/lib/thor/actions/empty_directory.rb:114:in `call' from
/Users/macbookpro/.rvm/gems/ruby-1.9.2-p290/gems/thor-0.14.6/lib/thor/actions/empty_directory.rb:114:in `invoke_with_conflict_check' from
/Users/macbookpro/.rvm/gems/ruby-1.9.2-p290/gems/thor-0.14.6/lib/thor/actions/create_file.rb:61:in
`invoke!' from
/Users/macbookpro/.rvm/gems/ruby-1.9.2-p290/gems/thor-0.14.6/lib/thor/actions.rb:95:in
`action' from
/Users/macbookpro/.rvm/gems/ruby-1.9.2-p290/gems/thor-0.14.6/lib/thor/actions/create_file.rb:26:in
`create_file' from
/Users/macbookpro/.rvm/gems/ruby-1.9.2-p290/gems/spree_core-0.70.2/lib/generators/spree/site/site_generator.rb:15:in
`config_spree_yml' from
/Users/macbookpro/.rvm/gems/ruby-1.9.2-p290/gems/thor-0.14.6/lib/thor/task.rb:22:in
`run' from
/Users/macbookpro/.rvm/gems/ruby-1.9.2-p290/gems/thor-0.14.6/lib/thor/invocation.rb:118:in
`invoke_task' from
/Users/macbookpro/.rvm/gems/ruby-1.9.2-p290/gems/thor-0.14.6/lib/thor/invocation.rb:124:in
`block in invoke_all' from
/Users/macbookpro/.rvm/gems/ruby-1.9.2-p290/gems/thor-0.14.6/lib/thor/invocation.rb:124:in
`each' from
/Users/macbookpro/.rvm/gems/ruby-1.9.2-p290/gems/thor-0.14.6/lib/thor/invocation.rb:124:in
`map' from
/Users/macbookpro/.rvm/gems/ruby-1.9.2-p290/gems/thor-0.14.6/lib/thor/invocation.rb:124:in
`invoke_all' from
/Users/macbookpro/.rvm/gems/ruby-1.9.2-p290/gems/thor-0.14.6/lib/thor/group.rb:226:in
`dispatch' from
/Users/macbookpro/.rvm/gems/ruby-1.9.2-p290/gems/thor-0.14.6/lib/thor/base.rb:389:in
`start' from
/Users/macbookpro/.rvm/gems/ruby-1.9.2-p290/gems/railties-3.1.2/lib/rails/generators.rb:168:in
`invoke' from
/Users/macbookpro/.rvm/gems/ruby-1.9.2-p290/gems/railties-3.1.2/lib/strong textrails/commands/generate.rb:12:in `<top (required)>' from
/Usestrong textrs/macbookpro/.rvm/gems/ruby-1.9.2-p290/gems/activesupport-3.1.2/lib/active_support/dependencies.rb:240:in
`require' from
/Users/macbookpro/.rvm/gems/ruby-1.9.2-p290/gems/activesupport-3.1.2/lib/active_support/dependencies.rb:240:in
`block in require' from
/Users/macbookpro/.rvm/gems/ruby-1.9.2-p290/gems/activesupport-3.1.2/lib/active_support/dependencies.rb:223:in
`block in load_dependency' from
/Users/macbookpro/.rvm/gems/ruby-1.9.2-p290/gems/activesupport-3.1.2/lib/active_support/dependencies.rb:640:in
`new_constants_in' from
/Users/macbookpro/.rvm/gems/ruby-1.9.2-p290/gems/activesupport-3.1.2/lib/active_support/dependencies.rb:223:in
`load_dependency' from
/Users/macbookpro/.rvm/gems/ruby-1.9.2-p290/gems/activesupport-3.1.2/lib/active_support/dependencies.rb:240:in
`require' from
/Users/macbookpro/.rvm/gems/ruby-1.9.2-p290/gems/railties-3.1.2/lib/rails/commands.rb:28:in
`<top (required)>' from script/rails:6:in `require' from
script/rails:6:in `<main>'
I was pretty confuse because i didn't create a database before (but it is showing that it existed). And now i can't even generate
spree site. I researched this problem for days and i haven't found a
matching solution yet. This is what my Gemfile looks like
source 'http://rubygems.org'
gem 'rails', '3.1.2'
# Bundle edge Rails instead:
# gem 'rails', :git => 'git://github.com/rails/rails.git'
gem 'mysql2'
# Gems used only for assets and not required
# in production environments by default. group :assets do gem 'sass-rails', '~> 3.1.5.rc.2' gem 'coffee-rails', '~> 3.1.1'
gem 'uglifier', '>= 1.0.3' end
gem 'jquery-rails'
# To use ActiveModel has_secure_password
# gem 'bcrypt-ruby', '~> 3.0.0'
# Use unicorn as the web server
# gem 'unicorn'
# Deploy with Capistrano
# gem 'capistrano'
# To use debugger
# gem 'ruby-debug19', :require => 'ruby-debug'
group :test do # Pretty printed test output gem 'turn', '0.8.2',
:require => false
gem 'spree' , '0.70.2'
end
I'd really appreciate if someone can give me some pointers or solutions to my problems. I'm quite lost right now, it'll sure make
someone happy. (tell me if u need more information about my ruby
environment)
Have you started with a fresh Rails application? Here's what I did (yesterday) using Ruby 1.9.2p290, Rails 3.1.1 on Fedora 16:
Make sure that ImageMagick in installed - the bootstrap script won't work without it.
Run rails new appname --database mysql
cd appname
Add gem, 'spree', '0.70.3' to Gemfile
Run bundle
Configure database.yml
Run rake db: create - ignore any database exists errors
Run rails generate spree:site - ignore any database exists errors
Run rake db:bootstrap
That should be it.
Just realised - you've got "gem 'spree'..." inside the ":test" group. Not good. Don't muck about with the Gemfile - just add the spree gem at the end.
As of today (December 2nd, 2012) the current version of spree which is compatible with ruby 1.9.3 and rails 3.2.9 is spree -v '1.2.2"
http://spreecommerce.com/blog/2012/11
Version 1.3 is set to release in December 2012
I am no expert, but I think you need to change your gemfile to
gem 'spree', '1.2.2'

Rake aborted, no such file to load -- paperclip

I'm trying to deploy a Rails3 app to Heroku, but am getting this 'Rake aborted' error when I rake db:create or rake db:migrate to heroku.
db:push does send the schema, indexes and data, but I get an 'Application Error' at the app.heroku url.
I've tried deleting and creating a new Heroku app, but I get the same problem.
Paperclip seems to be the cause. I've checked that paperclip is in the gemfile. I've updated all gems. I tried removing obvious dependencies from the gemfile. But I still get the 'rake aborted' error.
I'd appreciate any ideas or pointers to useful information to help me understand what's going on, and how to fix it.
This is the heroku db:create --trace
rake aborted!
no such file to load -- Paperclip
/app/.bundle/gems/ruby/1.8/gems/activesupport-3.0.5/lib/active_support/dependencies.rb:239:in `require'
/app/.bundle/gems/ruby/1.8/gems/activesupport-3.0.5/lib/active_support/dependencies.rb:239:in `require'
/app/.bundle/gems/ruby/1.8/gems/activesupport-3.0.5/lib/active_support/dependencies.rb:225:in `load_dependency'
/app/.bundle/gems/ruby/1.8/gems/activesupport-3.0.5/lib/active_support/dependencies.rb:596:in `new_constants_in'
/app/.bundle/gems/ruby/1.8/gems/activesupport-3.0.5/lib/active_support/dependencies.rb:225:in `load_dependency'
/app/.bundle/gems/ruby/1.8/gems/activesupport-3.0.5/lib/active_support/dependencies.rb:239:in `require'
/app/config/application.rb:11
/usr/ruby1.8.7/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
/usr/ruby1.8.7/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
/app/Rakefile:4
/app/.bundle/gems/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:2383:in `load'
/app/.bundle/gems/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:2383:in `raw_load_rakefile'
/app/.bundle/gems/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:2017:in `load_rakefile'
/app/.bundle/gems/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:2068:in `standard_exception_handling'
/app/.bundle/gems/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:2016:in `load_rakefile'
/app/.bundle/gems/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:2000:in `run'
/app/.bundle/gems/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:2068:in `standard_exception_handling'
/app/.bundle/gems/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:1998:in `run'
/app/.bundle/gems/ruby/1.8/gems/rake-0.8.7/bin/rake:31
/usr/ruby1.8.7/bin/rake:19:in `load'
/usr/ruby1.8.7/bin/rake:19
(in /app)
The heroku log file is long, and the only bit that looks relevant is
2011-04-26T02:57:28+00:00 app[web.1]: /app/.bundle/gems/ruby/1.8/gems/activesupport-3.0.5/lib/active_support/dependencies.rb:239:in `require': no such file to load -- Paperclip (LoadError)
My gem file
source 'http://rubygems.org'
gem 'rails', '3.0.5'
gem 'sqlite3'
gem 'pg', :require => 'pg'
gem 'paperclip', :require => 'paperclip'
gem 'rack-raw-upload'
gem 'rmagick'
gem 'will_paginate', '3.0.pre2'
gem 'devise'
gem 'aws-s3'
gem 'omniauth'
gem 'cancan'
gem 'cells'
group :development do
gem 'annotate-models', '1.0.4'
gem 'nifty-generators'
end
group :test do
gem 'mocha'
end
Everything is working fine in my local Postgres dev environment.
Please let me know if I have missed any important info.
I appreciate any pointers that would help understand the best approach to debugging an issue like this. I'm lost as to where to start!
Thanks
After a lot of searching, the answer to this was in the application.rb file. I had a line "require Paperclip", which i deleted and everything worked fine.

Is the current Rails 3.0.5 and Bundler dependency set wrong?

On Windows 7 with Ruby 1.9.2-p180 and Rails 3.0.5 installed, if I
rails new trytry
cd trytry
bundle install
it will show
C:\ror\trytry>bundle install
c:/ruby192/lib/ruby/gems/1.9.1/gems/bundler-1.0.0/lib/bundler/ui.rb:46:in `<class:UI>': uninitialized constant Gem::SilentUI (NameError)
from c:/ruby192/lib/ruby/gems/1.9.1/gems/bundler-1.0.0/lib/bundler/ui.rb:2:in `<module:Bundler>'
from c:/ruby192/lib/ruby/gems/1.9.1/gems/bundler-1.0.0/lib/bundler/ui.rb:1:in `<top (required)>'
from c:/ruby192/lib/ruby/gems/1.9.1/gems/bundler-1.0.0/lib/bundler/cli.rb:17:in `initialize'
from c:/ruby192/lib/ruby/gems/1.9.1/gems/bundler-1.0.0/lib/bundler/vendor/thor.rb:246:in `new'
from c:/ruby192/lib/ruby/gems/1.9.1/gems/bundler-1.0.0/lib/bundler/vendor/thor.rb:246:in `dispatch'
from c:/ruby192/lib/ruby/gems/1.9.1/gems/bundler-1.0.0/lib/bundler/vendor/thor/base.rb:389:in `start'
from c:/ruby192/lib/ruby/gems/1.9.1/gems/bundler-1.0.0/bin/bundle:13:in `<top (required)>'
from c:/Ruby192/bin/bundle:19:in `load'
from c:/Ruby192/bin/bundle:19:in `<main>
only after a
gem install bundler
or probably a
gem update bundler
then the bundle install will work. So looks like the Rails 3.0.5 needs a newer bundler which was not listed correctly in the dependency? Otherwise when I gem install rails for 3.0.5, it should have updated bundler as well, is that right?
You've got an older version of Bundler installed, you will need to run gem install bundler to update it to the latest version.
Rails depends on a version of Bundler matching the dependency version of ~> 1.0. If you've got a version of Bundler installed, such as 1.0.0, the process of gem install rails sees this dependency is matched already and so won't update Bundler. Therefore, you need to run gem install bundler to update it to the latest version.

Unable to get Postgresql database to work with Ruby on Rails 3

Environment
Windows 7 64 bit
Ruby 1.8.7
Rails 3.0.0
pg AdminIII
PostgreSQL 9.0.3
Cygwin
Gemfile
http://i54.tinypic.com/27yzxv4.png
Database Config
http://i53.tinypic.com/288b7ma.png
Steps I have taken
I tried addding "gem 'postgres-pr', :require => 'pg'" to the gemfile
Have tried installing multiple variations of the postgres gem,
postgres-pr
pg
ruby-pg
I continually get this error when trying to run rake db:migrate
rake aborted!
no such file to load -- pg
/usr/lib/ruby/gems/1.8/gems/bundler-1.0.10/lib/bundler/runtime.rb:68:in `require'
/usr/lib/ruby/gems/1.8/gems/bundler-1.0.10/lib/bundler/runtime.rb:68:in `require'
/usr/lib/ruby/gems/1.8/gems/bundler-1.0.10/lib/bundler/runtime.rb:66:in `each'
/usr/lib/ruby/gems/1.8/gems/bundler-1.0.10/lib/bundler/runtime.rb:66:in `require'
/usr/lib/ruby/gems/1.8/gems/bundler-1.0.10/lib/bundler/runtime.rb:55:in `each'
/usr/lib/ruby/gems/1.8/gems/bundler-1.0.10/lib/bundler/runtime.rb:55:in `require'
/usr/lib/ruby/gems/1.8/gems/bundler-1.0.10/lib/bundler.rb:120:in `require'
/home/Other/rails_projects/test_project/config/application.rb:7
/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:29:in `gem_original_require'
/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:29:in `require'
/home/Other/rails_projects/test_project/Rakefile:4
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2383:in `load'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2383:in `raw_load_rakefile'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2017:in `load_rakefile'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2068:in `standard_exception_handling'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2016:in `load_rakefile'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2000:in `run'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2068:in `standard_exception_handling'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:1998:in `run'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/bin/rake:31
/usr/bin/rake:19:in `load'
/usr/bin/rake:19
Been at this for a couple days, really need some help. Thanks in advance!
You need to specify the correct platform for the gem. In my Gemfile, I have:
group :development, :test do
gem 'pg', :platforms => :mingw
end
(The group is there because I deploy to a Unix box, where the platform is obviously different). I seem to remember that I also needed the DevKit for this to work.
You need to install pg and add to your Gemfile
gem 'pg'
You may need to upgrade your version of Rails to 3.0.1 - 3.0.9 and also run gem install pg. Then just for good measure re-run bundle install.

Undefined method 'task' using Rake 0.9.0

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?
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 (add sudo unless you use rvm)
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 using bundle exec, for example:
bundle exec rake db:migrate
Otherwise you get the following error.
rake aborted!
You have already activated rake 0.9.0, but your Gemfile requires rake 0.8.7. Consider using bundle exec.
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
rvm use #global && gem uninstall rake -v 0.9.0
rvm use # && gem uninstall rake -v 0.9.0
Also try the solution suggested in Duke's answer.
I had the same exception when running the 0.9.0.beta.4 version of Rake.
It looks like the new Rake::DSL is not loaded properly.
So I added following code to my Rakefile:
require 'rake'
# Rake Fix Code start
# NOTE: change 'Anelis' to your app's module name (see config/application.rb)
module ::Anelis
class Application
include Rake::DSL
end
end
module ::RakeFileUtils
extend Rake::FileUtilsExt
end
# Rake Fix Code end
MyApp::Application.load_tasks
That way I was able to run my Rake tasks again.
I know that this is not a elegant solution. But if you have to use the --pre version of Rake it might be all right to use this quick hack.
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:
class Rails::Application
include Rake::DSL if defined?(Rake::DSL)
end
I've created an issue for rails_admin about this same error.
The answer:
This is a general Rails problem: http://twitter.com/dhh/status/71966528744071169
There should be a 3.0.8 release soon that fixes it. In the mean time, you can add the following line to your Gemfile:
gem 'rake', '~> 0.8.7'
It's a problem in Rake (0.9.0), it was announced by DHH on Twitter.
Rake 0.9, which was released yesterday, broke Rails (and others). While we wait for a fix, you'll want gem 'rake', '0.8.7' in your Gemfile.
This has been fixed in Ruby on Rails 3.0.8.rc1 which should be released in a few days time.
Rake 0.9.1 has just been released which reverses the change that caused this error but adds a deprecation warning: https://github.com/jimweirich/rake/commit/44aec3ceac085740bce0c385bccd65fc4d1d911c
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
gem 'rake', '~> 0.8.7'
to your Gemfile and just type
bundle exec rake -T