обновление пакета rails, разрешенное для кандидата на выпуск 6.0.1

#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, а не более поздние версии.