主要的未定义方法`require_relative’:Object(NoMethodError)

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

 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$ 

我通过完全删除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 

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

$ cd ..
$ cd myapp

我只需运行gem install rails就可以解决这个问题。

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

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

尝试运行bundle exec rails server而不仅仅是rails server

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

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

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

 bundle exec ruby filename.rb 

作品。