0

我(是?)使用 rvm 与 ruby​​ 1.9.3 和 rails 3.2.8。

我决定尝试一下 Hobo rails 插件,所以我按照 Hobo 网站上的说明进行操作,上面说你只需要输入:

宝石安装流浪汉

输出:

成功安装activesupport-3.0.17

成功安装builder-2.1.2

成功安装i18n-0.5.0

成功安装activemodel-3.0.17

成功安装 rack-1.2.5

成功安装 rack-test-0.5.7

成功安装 rack-mount-0.6.14

成功安装 abstract-1.0.0

成功安装erubis-2.6.6

成功安装actionpack-3.0.17

安装成功arel-2.0.10

成功安装activerecord-3.0.17

成功安装activeresource-3.0.17

成功安装mail-2.2.19

成功安装actionmailer-3.0.17

成功安装railties-3.0.17

成功安装rails-3.0.17

成功安装hobo_support-1.3.0

成功安装hobo_fields-1.3.0

成功安装dryml-1.3.0

成功安装 will_paginate-3.0.3

成功安装hobo-1.3.0

如您所见,它安装了 rails 3.0.17 和许多与 rails 3.0.17 配合使用的旧版本 gem

我输入 rails -v 它仍然显示 3.2.8 (也是在从 shell 注销并重新登录之后)

我现在对此感到很困惑。我的导轨安装搞砸了吗?rvm 是否会同时自动管理更多的 rails 版本?这些 gem 二进制文件(例如 rails 命令本身)如何不覆盖自己?如果我输入 rails -v 因为我刚刚安装它,我不应该得到 rails 3.0.17 吗?这不应该发生在它附带的其他宝石上吗?

我希望有人能向我澄清..我厌倦了重新安装 ruby​​ 和 rails..有时感觉它是一种过于微妙的生态系统(年轻/不成熟),突然之间可能会崩溃......:\抱歉快速咆哮;)

4

2 回答 2

2

这就是 Bundler 和应用程序的 Gemfile 应该发挥作用的地方。rails -v将显示您安装的最新版本;但是,您的 Gemfile 可以指定旧版本。只要您的 Gemfile 指定您的应用程序使用的版本,所有这些版本都可以愉快地并存。所以只要你的 Rails 应用程序的 gemfile 有这行

gem 'rails', '3.2.8'

即使安装了多个版本的 Rails,你也应该没问题。用于gem list查看已安装 gem 的所有版本。

如果您愿意,可以使用 RVM gemsets 添加到 gem 隔离中。不过,您可能会发现它增加了复杂性。有关更多信息,请参阅https://rvm.io/gemsets/

于 2012-08-28T04:04:22.393 回答
1

正如农村城市所指出的,是您的 gemfile 和 gemfile.lock 指示加载了哪些 gem。Rvm gemsets 是 rails 2 的天赐之物,但它们不值得为 rails 3 带来麻烦。

如果您想使用 hobo 1.3,您将不得不将您的应用程序降级到 rails 3.0。或者,您可以使用来自 github 的 hobo 版本,该版本适用于 rails 3.2。我推荐后者。Hobo 1.4 非常稳定并且非常接近发布。

另一个需要注意的是,虽然 rails 会自动使用 gemfile.lock,但其他命令行应用程序可能不会。养成输入 ‛bundle exec rake‛ 而不仅仅是 rake 的习惯。

于 2012-08-28T14:48:18.660 回答