使用rvm升级到ruby 1.9.3会破坏我的rails应用程序

时间:2011-11-01 08:16:32

标签: ruby-on-rails ruby-on-rails-3.1 rvm ruby-1.9.3

我使用以下命令使用rvm升级了ruby:

rvm get head
rvm install 1.9.3
rvm reload
rvm use 1.9.3 --default

现在当我运行rails时,我收到以下错误消息:

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems.rb:827:in `report_activate_error': Could not find RubyGem rails (>= 0) (Gem::LoadError)
from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems.rb:261:in `activate'
from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems.rb:68:in `gem'
from /usr/bin/rails:18

如果我运行哪个ruby,gem环境和ruby -v我会得到连贯的输出。谁能帮我理解我的应用程序出了什么问题?

2 个答案:

答案 0 :(得分:2)

您是否尝试过gem install rails

将RVM与ruby gems一起使用意味着您可以在PATH中包含二进制文件(包括rails二进制文件),用于未安装的gem。

这就是你的错误。

我希望bundle installgem install rails可以解决您的问题。

答案 1 :(得分:1)

您应该可以通过以下方式让您的应用再次运行:

$ bundle

安装Gemfile依赖项。然后你应该运行rails server:

$ bundle exec rails s

使用bundle exec非常重要,以确保rails命令从适用于您应用程序的rails gem运行。

如果你想了解更多关于这个的信息,Yehuda Katz有一篇详细的博文: http://yehudakatz.com/2011/05/30/gem-versioning-and-bundler-doing-it-right/