【问题标题】:What are the benefits of using the Rails gem instead od vendor/rails?使用 Rails gem 代替 vendor/rails 有什么好处?
【发布时间】:2009-07-25 18:47:55
【问题描述】:

我最近开始使用 Ruby on Rails 进行一个小型个人项目,并且遇到了一些我无法找到明确答案的事情。如果这里的任何人有足够的知识来提供帮助,那将不胜感激。我所有的问题都在下面:

  • 使用 Rails Gem 而不是将它放在 vendor/rails 中有什么好处?
  • 使用 Rails 2.3.2 有什么好处吗?我希望使用的一些插件似乎与 2.3.2 (ActiveScaffold) 不兼容?它比 2.2 有很大的改进吗?
  • 使用 Ruby 1.9 有什么好处?许多插件还不兼容。它是否比旧版本有很大改进?

感谢你们提供的任何帮助。

【问题讨论】:

  • 一般来说,你应该尽量保持一个问题一个问题,回答多个问题要困难得多,而且答案往往不太彻底

标签: ruby-on-rails ruby ruby-on-rails-plugins


【解决方案1】:
  1. vendor/rails 可能使您的项目更便携。运行 rake gems:install 的部署可能会有点不稳定,尤其是当您升级“框架 Gem”时(您必须手动执行这些操作)。

    vendor/rails 的缺点是它会使您的部署稍大一些(需要推送更多文件),但是如果您使用 git 和 Capistrano 之类的东西,这只会在初始部署时对您不利……但它不是太糟糕了。

  2. 我不认为有什么巨大的好处;这仅取决于您是否需要 2.3.2 中的功能。显然,您想尝试运行最新版本以减少升级的痛苦。我发现如果你以后想要升级任何变化,你总是需要升级 Rails 下的框架。

  3. 性能。正如你所指出的,很多插件都坏了。这是一个先有鸡还是先有蛋的问题,但加班应该会自行解决。我们尚未在任何生产应用程序中运行 1.9,因为它与堆栈的其余部分太不稳定。

【讨论】:

    【解决方案2】:

    我将解决 gem 问题。

    我过去使用过出售的宝石,但我几乎不再使用它,除非在极少数情况下我需要分叉宝石以出于某种目的对其进行自定义,在这种情况下我会出售宝石。

    从我的角度来看,不供应商的主要原因是您不能干净地供应任何带有 C 模块的 gem,因为它们需要编译。

    一个非常好的选择是使用 gem 管理工具,例如 geminstaller,它允许您配置项目所针对的 gem 和特定版本的 gem,以便您在部署中拥有一组一致的 gem。

    【讨论】:

      【解决方案3】:

      使用 Rails Gem 而不是将其放入 供应商/导轨?

      最大的好处是您无需在项目中携带完整的 rails 源代码,另一个好处是迁移到更新版本的 rails 将需要更少的工作。

      请记住,gem 命令将允许您安装特定版本的 gem。

      使用 Rails 2.3.2 有什么好处吗?我的一些插件 希望用的好像没有 与 2.3.2 兼容 (活动支架)?它是否提供一个 比 2.2 有很大改进?

      从 rails 2.2 到 2.3.2 的 lot has changed,还有许多安全性、性能和错误修复。 ActiveScaffold 与 rails 2.3.2 兼容,大多数插件也是如此。如果您正在开始一个新项目,我建议您使用最新最好的。

      使用 Ruby 1.9 有什么好处?许多插件还不兼容。它是否提供了一个很棒的 对旧版本的改进?

      Ruby 1.9 比 Ruby 1.8.x 快得多,但是 1.9 的采用率并不高。 Rails 2.3.2 在 Ruby 1.9 上工作得很好,但是有一些插件和 gems 不能。请务必阅读有关该主题的 this stackoverflow 问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-13
        • 2011-09-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-12-24
        相关资源
        最近更新 更多