当尝试更新OpenSSL时 - 我在笔记本电脑上打破了(似乎)Ruby和Rails的所有内容。即使在通过gem uninstall
和rvm 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$
答案 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
作品。