【问题标题】:Specifying Gem version when building Ruby on Rails apps在构建 Ruby on Rails 应用程序时指定 Gem 版本
【发布时间】:2011-09-12 12:24:25
【问题描述】:

我正在使用this excellent tutorial 学习Ruby on Rails,我注意到作者总是在Gemfile 中指定Gem 版本号(参见hereherehere)。这是我应该养成的习惯吗?如果是这样,我怎么知道要指定哪个版本?

【问题讨论】:

    标签: ruby-on-rails gemfile


    【解决方案1】:

    我建议不要指定 gem 版本,直到您发现与特定 gem 不兼容。

    Bundler 将自己锁定特定版本的 gem。您只需要记住在生产机器上使用bundle install --deployment,并且只在您的开发机器(或其他目录)上进行升级。

    对您的项目进行良好的测试覆盖率非常重要。如果没有测试,您将不知道升级何时会破坏您的应用程序。我谦虚地建议以下路线:

    • 运行rake test (只是为了确保一切正常)
    • 运行bundle update
    • 运行rake test

    如果测试通过,请在Gemfile.lock 中提交更改。如果测试没有通过,并且您想锁定给定的 gem,然后在 Gemfile 中指定版本。

    您可以在捆绑器文档中阅读有关 install --deploymentdeploying 的信息。

    【讨论】:

      【解决方案2】:

      “冻结”特定版本的宝石很重要,如果您正在为生产做准备,则必须这样做。 Gems、库和应用程序会随着时间而发展——为了不断发展,有时需要更改 Gem API,而这种做法破坏了与以前版本的向后兼容性。

      有几篇关于“冻结”Rails 版本(过去我们称之为“指定 Gem 版本”的方式)的老而好的文章,例如 DHH's Freeze is cool, so freeze for goodness sakeShould I freeze my Rails application?

      为了知道要指定哪个版本,我建议您指定最新版本。只需gem install gemname 然后gem list gemname 即可查看您刚刚安装的版本。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-01-05
        • 2017-07-01
        • 2013-06-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多