Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

undefined method `groups' for Rails:Module

As usual I've been an idiot and broken rails on my mac somehow. I think it all started when it said the version of rake wasn't recent enough so I delved down a huge road of different gems etc. and different versions of rails, I ended up getting rails from github but it replaces it with the most recent version.

Now I fear all of my configuration files are incorrect, but when I try to 'rake rails:update' I get the following error with a trace:

rake aborted!
undefined method `groups' for Rails:Module
/Users/jamielawrence/Documents/Websites/JaphexPortfolio/config/application.rb:8
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:36:in `gem_original_require'
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:36:in `require'
/Users/jamielawrence/Documents/Websites/JaphexPortfolio/Rakefile:4
/Library/Ruby/Gems/1.8/gems/rake-0.9.2/lib/rake/rake_module.rb:25:in `load'
/Library/Ruby/Gems/1.8/gems/rake-0.9.2/lib/rake/rake_module.rb:25:in `load_rakefile'
/Library/Ruby/Gems/1.8/gems/rake-0.9.2/lib/rake/application.rb:495:in `raw_load_rakefile'
/Library/Ruby/Gems/1.8/gems/rake-0.9.2/lib/rake/application.rb:78:in `load_rakefile'
/Library/Ruby/Gems/1.8/gems/rake-0.9.2/lib/rake/application.rb:129:in `standard_exception_handling'
/Library/Ruby/Gems/1.8/gems/rake-0.9.2/lib/rake/application.rb:77:in `load_rakefile'
/Library/Ruby/Gems/1.8/gems/rake-0.9.2/lib/rake/application.rb:61:in `run'
/Library/Ruby/Gems/1.8/gems/rake-0.9.2/lib/rake/application.rb:129:in `standard_exception_handling'
/Library/Ruby/Gems/1.8/gems/rake-0.9.2/lib/rake/application.rb:59:in `run'
/Library/Ruby/Gems/1.8/gems/rake-0.9.2/bin/rake:32
/usr/bin/rake:19:in `load'
/usr/bin/rake:19

I've pretty much had enough tonight, I've been down a million routes (it all started with trying to get an authentication add on to work).

All i want to do is reset the config files to what they were originally for rails 3.0.9, my gem file went from:

gem 'rails', '3.0.9'

to

gem 'rails', :git => 'git://github.com/rails/rails.git'

back to

gem 'rails', '3.0.9'

...I'm an idiot...but an idiot with a huge headache.

like image 218
Jamie Avatar asked Jul 25 '11 22:07

Jamie


3 Answers

My error: I have the same error, as you can see here:

$ rails c production
config/application.rb:7: undefined method `groups' for Rails:Module (NoMethodError)
    from /usr/lib/ruby/gems/1.8/gems/railties-3.0.9/lib/rails/commands.rb:21:in `require'
    from /usr/lib/ruby/gems/1.8/gems/railties-3.0.9/lib/rails/commands.rb:21
    from script/rails:6:in `require'
    from script/rails:6

In config/application.rb file, I have these lines:

if defined?(Bundler)
  Bundler.require(*Rails.groups(:assets => %w(development test)))
end

Then I checked another Rails 3 app, in this app I checked again this file and it contains these lines:

Bundler.require(:default, Rails.env) if defined?(Bundler)

So I sustitute this line and I works.

I hope to be your solution too.

like image 164
Israel Avatar answered Oct 18 '22 19:10

Israel


The problem is that your app was generated with a version of rails 3.1 or higher. It's trying to call the "groups" method, which doesn't exist. If you haven't gotten too far, just start from scratch. Otherwise, create a dummy project and compare the config/application.rb files. Make them match.

like image 29
Thom Mahoney Avatar answered Oct 18 '22 20:10

Thom Mahoney


Read this article : http://ryan.mcgeary.org/2011/02/09/vendor-everything-still-applies/

or

TLDR bundle install --path vendor then bundle --binstubthen bin/rake whatever

oh and don't forget to the .rvmrc in your app directory

like image 1
charlysisto Avatar answered Oct 18 '22 20:10

charlysisto