В чем разница между "~> 4.0.1", "4.0.1" и спецификатором версии в Gemfile?
В Rails Gemfile существуют различия между ними:
gem "gemname", "~> 4.0.1"
и
gem "gemname", "4.0.1"
и
gem "gemname"
Кроме того, что следует использовать там, где и что выгодно следовать этому пути?
Ответ 1
Первый скажет компоновщику загрузить любой драгоценный камень, который зависит от последнего номера (патча). Так что 4.0.х где х равен 1 или больше.
Второй загрузит только 4.0.1.
Третий получит наибольшее значение, которое работает (в зависимости от потребностей остальных ваших драгоценных камней в вашем Gemfile) или получит все, что указано в вашем Gemfile.lock, если он у вас есть.
Я пропустил ваш второй вопрос. Честно говоря, это зависит. По большей части я выбираю первый вариант, потому что он позволяет мне исправлять ошибки, не беспокоясь о том, как это повлияет на другие мои драгоценные камни.