34

在 Rails Gemfile 中,这些之间有什么区别:

gem "gemname", "~> 4.0.1"

gem "gemname", "4.0.1"

gem "gemname"

另外应该在哪里使用以及遵循这种方式的好处是什么?

4

1 回答 1

44

第一个将告诉 bundler 加载随最后一个(补丁)编号变化的任何 gem。所以 4.0.x 其中 x 为 1 或更大。

第二个只会加载 4.0.1。

第三个将获得有效的最高值(取决于您的 Gemfile 中其余 gem 的需求),或者将获得 Gemfile.lock 中指定的任何内容,如果您有的话。

我错过了你的第二个问题。坦率地说,这取决于。在大多数情况下,我选择第一个选项,因为它让我可以修复错误,而不必担心它会如何影响我的其他 gem。

于 2012-08-25T21:41:12.757 回答