Mic*_*ant 5 ruby rubygems ruby-on-rails gemfile
bcrypt的宝石在https://rubygems.org/gems/bcrypt/versions/3.1.11
显示了这种用法
gem 'bcrypt', '~> 3.1', '>= 3.1.11'
Run Code Online (Sandbox Code Playgroud)
为什么有两个版本的精子悲观操作符?
我们通常只使用一个版本用于其他宝石
>= 3.1.11是 \xe2\x80\x9coptimistic\xe2\x80\x9d 版本约束。它\xe2\x80\x99s 表示从3.1.11开始的所有更改都将起作用,但对于版本而言,4.0.0情况并非如此。
~> 3.1是 \xe2\x80\x9c 悲观\xe2\x80\x9d。这明确排除了可能破坏您的代码的版本。它基本上是在说>= 3.1和< 4.0。但如果有的话~> 3.1.1,它将等于>= 3.1.1但小于3.2
如果您想允许使用较新的向后兼容版本,但需要特定的错误修复,您可以使用复合要求,如http://guides.rubygems.org/patterns/#pessimistic-version-constraint\'~> 3.1\', \'>= 3.1.11\' 中详细说明如果您想要要允许使用较新的向后兼容版本但需要特定的错误修复,您可以使用复合要求,例如... \'~> 2.2\', \'>= 2.2.1\'