这个问题在这里已有答案:
在Rails Gemfile中,它们之间有什么区别:
gem "gemname", "~> 4.0.1"
和
gem "gemname", "4.0.1"
和
gem "gemname"
还应该使用哪种方式以及遵循这种方式的好处?
第一个将告诉bundler加载任何随最后(补丁)号码变化的gem。所以4.0.x其中x是1或更大。
第二个只加载4.0.1。
第三个将获得最高值(取决于你的Gemfile中其余gems的需求)或者你将获得Gemfile.lock中指定的任何内容(如果你有的话)。
我错过了你的第二个问题。坦率地说,这取决于。在大多数情况下,我选择第一个选项,因为它让我可以修复错误修复而不用担心它会如何影响我的其他宝石。