未定义的方法`require_relative' for main:Object(NoMethodError)

时间:2013-09-21 16:04:12

标签: ruby-on-rails ruby macos

当尝试更新OpenSSL时 - 我在笔记本电脑上打破了(似乎)Ruby和Rails的所有内容。即使在通过gem uninstallrvm remove卸载ruby和rails后,我仍然遇到此错误:

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

几个月来一切都运转良好,直到我四处乱逛 - 最糟糕的是,我甚至不确定我做了什么来搞砸。

额外信息

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$ 

更新 - 不使用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$ 

5 个答案:

答案 0 :(得分:10)

我通过完全删除Rails,Ruby和RVM来解决问题 - 然后从头开始。

我不完全记得所有命令,但它类似于:

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

答案 1 :(得分:10)

在使用Rails Composer安装rails之后,我想到了这一点。看起来像RVM选择ruby版本的问题,诀窍是简单地导航并返回到文件夹。

$ cd ..
$ cd myapp

答案 2 :(得分:6)

我只需运行gem install rails即可解决此问题。

当我克隆预先存在的Rails 4应用程序时,会出现此问题。我正在使用ruby-2.0.0-p317,以及一个特定于此应用程序的RVM gemset。我运行了初始bundle install,但在没有收到错误的情况下无法运行rails console

运行gem install rails后,我的应用程序的gemset中使用了缓存副本,问题得以解决。不要问我为什么!

答案 3 :(得分:4)

尝试运行bundle exec rails server而非rails server

我看到了这个错误,因为我在全球范围内安装了rails gem的冲突版本。

使用bundle exec的前缀命令可确保您使用项目Gemfile.lock指定的gem。

答案 4 :(得分:0)

与@ncherro相似,我使用ruby filename.rb得到了这个。正在运行

bundle exec ruby filename.rb   

作品。