drewwyatt
drewwyatt

Reputation: 6027

undefined method `require_relative' for main:Object (NoMethodError)

When trying to update OpenSSL - I broke (seemingly) everything surrounding Ruby and Rails on my laptop. Even after uninstalling ruby and rails through gem uninstall and rvm removeI am still running into this error:

Drews-MacBook-Pro:bookstore drewwyatt$ rails server
bin/rails:3: undefined method `require_relative' for main:Object (NoMethodError)

Everything has been working fine for months until I went mucking around - the worse part is that I'm not even sure what I did to mess things up.

extra info

Drews-MacBook-Pro:bookstore drewwyatt$ ruby -v
ruby 2.0.0p247 (2013-06-27 revision 41674) [x86_64-darwin12.3.0]
Drews-MacBook-Pro:bookstore drewwyatt$ which ruby
/Users/drewwyatt/.rvm/rubies/ruby-2.0.0-p247/bin/ruby
Drews-MacBook-Pro:bookstore drewwyatt$ rails -v
bin/rails:3: undefined method `require_relative' for main:Object (NoMethodError)
Drews-MacBook-Pro:bookstore drewwyatt$ which rails
/Users/drewwyatt/.rvm/rubies/ruby-2.0.0-p247/bin/rails
Drews-MacBook-Pro:bookstore drewwyatt$ 

update - installing without sudo

Drews-MacBook-Pro:~ drewwyatt$ gem install rails
Fetching: railties-4.0.0.gem (100%)
ERROR:  While executing gem ... (Errno::EACCES)
    Permission denied - /Users/drewwyatt/.rvm/gems/ruby-2.0.0-p247/bin/ruby_executable_hooks
Drews-MacBook-Pro:~ drewwyatt$ 

Upvotes: 7

Views: 16757

Answers (5)

Darby
Darby

Reputation: 789

Similar to @ncherro, I got this using ruby filename.rb. Running

bundle exec ruby filename.rb   

works.

Upvotes: 0

tom
tom

Reputation: 718

This came up for me after installing rails with Rails Composer. Seems like a problem with RVM selecting the ruby version, the trick was to simply navigate out and back into the folder.

$ cd ..
$ cd myapp

Upvotes: 10

ncherro
ncherro

Reputation: 2614

Try running bundle exec rails server instead of just rails server.

I was seeing this error because I had a conflicting version of the rails gem installed globally.

Prefixing commands with bundle exec ensures that you're using gems specified by your project's Gemfile.lock.

Upvotes: 4

platforms
platforms

Reputation: 2726

I was able to resolve this problem by simply running gem install rails.

This problem occurred when I cloned a pre-existing Rails 4 app. I am using ruby-2.0.0-p317, and an RVM gemset specific to this app. I ran the initial bundle install, but then could not run rails console without getting the error.

After running gem install rails, which used the cached copy in my app's gemset, the problem was resolved. Don't ask my why!

Upvotes: 6

drewwyatt
drewwyatt

Reputation: 6027

I fixed the problem by completely removing Rails, Ruby, and RVM altogether - then starting from scratch.

I don't remember all of the commands exactly, but it was something like:

sudo gem uninstall rails
sudo rvm remove 2.0
rvm implode
sudo chown -R drewwyatt: ~/.rvm/
rm -rf ~/.rvm
\curl -L https://get.rvm.io | bash -s stable --rails
rvm use 2.0
gem install rails

Upvotes: 10

Related Questions