Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在构建Ruby on Rails应用程序时指定Gem版本_Ruby On Rails_Gemfile - Fatal编程技术网

Ruby on rails 在构建Ruby on Rails应用程序时指定Gem版本

Ruby on rails 在构建Ruby on Rails应用程序时指定Gem版本,ruby-on-rails,gemfile,Ruby On Rails,Gemfile,我正在使用学习RubyonRails,我注意到作者总是在Gem文件中指定Gem版本号(请参阅和)。这是我应该养成的习惯吗?如果是这样,我如何知道要指定哪个版本?在特定版本中“冻结”gems很重要,如果您正在为生产准备一些东西,这是必须的。Gem、库和应用程序会随着时间的推移而不断发展——为了不断发展,有时需要更改Gem API,这通常会破坏与以前版本的向后兼容性 有一些关于“冻结”Rails版本(在过去我们称之为“指定Gem版本”)的老文章,比如,和 为了了解要指定的版本,我建议您指定最新版本。

我正在使用学习RubyonRails,我注意到作者总是在Gem文件中指定Gem版本号(请参阅和)。这是我应该养成的习惯吗?如果是这样,我如何知道要指定哪个版本?

在特定版本中“冻结”gems很重要,如果您正在为生产准备一些东西,这是必须的。Gem、库和应用程序会随着时间的推移而不断发展——为了不断发展,有时需要更改Gem API,这通常会破坏与以前版本的向后兼容性

有一些关于“冻结”Rails版本(在过去我们称之为“指定Gem版本”)的老文章,比如,和


为了了解要指定的版本,我建议您指定最新版本。只需
gem安装gemname
,然后
gem列出gemname
,查看您刚刚安装的版本。

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

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

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

  • 运行rake测试(确保一切正常)
  • 运行
    bundle更新
  • 运行
    rake测试
如果测试通过,请在
Gemfile.lock
中提交更改。如果测试没有通过,并且您想要锁定给定的gem,那么在Gemfile中指定版本

您可以在bundler文档中阅读和