web-dev-qa-db-ja.com

Gemfileの「〜> 4.0.1」、「4.0.1」とバージョン指定子なしの違いは何ですか?

Rails Gemfileでは、これらの違いは何ですか:

gem "gemname", "~> 4.0.1"

そして

gem "gemname", "4.0.1"

そして

gem "gemname"

また、何をどこで使用する必要がありますか?

33
JVK

1つ目は、最後の(パッチ)番号によって異なるgemをロードするようにbundlerに指示します。したがって、4.0.x(xは1以上)です。

2番目は4.0.1のみをロードします。

3番目は、(Gemfile内の残りのgemのニーズに応じて)機能する最高値を取得するか、Gemfile.lockで指定されているものがある場合は、Gemfile.lockで指定されている値を取得します。

2つ目の質問を逃しました。率直に言って、状況によります。ほとんどの場合、最初のオプションを使用します。これにより、他のGemにどのように影響するかを気にすることなくバグ修正を取得できます。

43
traday