2011-09-12 58 views

回答

2

我建议不是指定宝石版本,直到你已经发现与特定宝石不兼容。

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

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

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

如果测试通过,提交更改在Gemfile.lock。如果测试未通过,并且您想锁定给定的宝石,则然后在Gemfile中指定版本。

您可以在bundler文档中阅读install --deploymentdeploying

1

在特定版本中“冻结”宝石非常重要,如果您正在为生产准备东西,这是必须的。宝石,图书馆和应用程序会随着时间的推移而发展 - 为了不断发展,有时需要更改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即可查看刚安装的版本。

相关问题