ruby-on-rails - 主要 :Object (NoMethodError) 的未定义方法 `require_relative'

标签 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$ 

最佳答案

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

关于ruby-on-rails - 主要 :Object (NoMethodError) 的未定义方法 `require_relative',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18934716/

相关文章:

Ruby:如何检查一个字符串是否包含多个项目?

python - 使用 python 从 .numbers 文件中提取数据

linux - Linux 的/dev/usb/lp0 的 OSX 版本是什么?

objective-c - NS 大纲 View : exception when edit a NSTextFieldCell bound to a NSTreeController

ruby-on-rails - Rails 4 "no implicit conversion of Symbol into String"仅在生产中

javascript - 使用 AJAX POST 从 javascript 到具有强参数的 Rails 4 Controller

ruby-on-rails - Ruby on Rails | Ruby on Rails条件中的虚拟属性

mysql - 如何在 Rails 中有效地获取这些代理 ID

ruby - 为什么这段代码打印同样的东西两次?

ruby - 为 Ruby Resolv.getaddress(ip) 设置超时