#ruby-on-rails #bundler
Вопрос:
Я пытаюсь обновить рельсы с 5.2 до 6.0. В моем файле с драгоценными камнями я объявил:
рельсы (~> 6.0) были изменены на 6.0.1.rc1
Я ожидаю, что в итоге я получу 6.0.4. Значение ~> означает оптимистичное решение до последней версии 6.0.*?) Я не хочу соглашаться с кандидатом на освобождение, я не хочу этого делать.
Конечно, я могу указать это напрямую, но я бы предпочел не привязывать файл Gemfile к определенной версии и не рассчитывать на то, что bundler разрешит его правильно.
Ответ №1:
Одним из быстрых решений было бы изменить ваш файл Gemfile. Если вы хотите сохранить оптимистичный ~> 6.0
оператор, вы можете добавить второй сопоставитель для версии, как это (и, таким образом, сообщить об ошибке, если это невозможно сделать):
gem 'rails', '~> 6.0', '>= 6.0.4'
Я часто использую этот шаблон для блокировки исправлений безопасности, не теряя гибкости ~>
оператора.
Я бы предположил, что что — то мешает bundler использовать более позднюю версию Rails gem-то есть у вас есть зависимость, которая блокирует вашу версию gem 6.0.1
. Если вышесказанное не решает проблему, можете ли вы опубликовать соответствующие части вашего Gemfile
вопроса в своем вопросе? И найдите Gemfile.lock
rails
, чтобы узнать, есть ли у вас какие-либо драгоценные камни, для которых требуются rails 6.0.1, а не более поздние версии.