【问题标题】:upgrading to ruby 1.9.3 with rvm breaks my rails app使用 rvm 升级到 ruby​​ 1.9.3 会破坏我的 rails 应用程序
【发布时间】:2011-11-01 08:16:31
【问题描述】:

我已经通过 rvm 使用以下命令升级了 ruby​​:

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

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

/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

如果我运行 which ruby​​、gem environment 和 ruby​​ -v 我会得到一致的输出。谁能帮助我了解我的应用程序出了什么问题?

【问题讨论】:

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


    【解决方案1】:

    你试过运行gem install rails吗?

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

    这就是你的错误的样子。

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

    【讨论】:

    • 我运行 gem install rails,然后 bundle install 但现在当我运行 rails s 时,我的命令行出现错误,并说我的用户模型中存在语法错误,而以前没有。(就是说我的模型末尾有一个意想不到的关键字结尾,这对我来说毫无意义)我不知道是否与设计冲突,或者我只是疯了。
    • 我认为这是一个不同的问题。如果这是一个“意外结束”错误,它应该在回溯显示的文件中。如果它在 1.9.2 中工作,我想不出任何语法更改。尝试在 2 之间交换并验证您没有意外添加语法错误。
    • 如何在两者之间切换?
    • 没关系,我发现了问题,并且在我的一个文件中添加了一个逗号,该文件在 1.9.2 中没有中断,但在 1.9.3 中出现了。我删除了它,现在应用程序运行完美。
    【解决方案2】:

    您应该能够通过简单地运行来让您的应用再次运行:

    $ 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/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-18
      • 1970-01-01
      相关资源
      最近更新 更多