主要的未定义方法`require_relative’:Object(NoMethodError)
在尝试更新OpenSSL时 – 我在笔记本电脑上打破了(似乎)Ruby和Rails的所有内容。 即使通过gem uninstall
和rvm 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
作品。