Указание версии Gem при сборке приложений Ruby on Rails - PullRequest
1 голос
/ 12 сентября 2011

Я изучаю Ruby on Rails, используя этот превосходный учебник , и я заметил, что автор всегда указывает номер версии Gem в Gemfile (см. здесь , здесь и здесь ).Я должен привыкнуть к этому?Если да, то как узнать, какую версию указать?

Ответы [ 2 ]

2 голосов
/ 12 сентября 2011

Я предлагаю не указывать версию гема, до вы обнаружили несовместимость с конкретным гемом.

Bundler сам заблокирует определенные версии драгоценных камней. Вам просто нужно не забыть использовать bundle install --deployment на рабочей машине (машинах) и выполнять обновления только на своей машине для разработки (или в другом каталоге).

Очень важно иметь хорошее тестовое покрытие вашего проекта. Без тестов вы не узнаете, когда обновление сломает ваше приложение. Я смиренно предлагаю следующий маршрут:

  • run rake test (просто чтобы убедиться, что все работает)
  • пробег bundle update
  • пробег rake test

Если тест пройден, подтвердите изменение в Gemfile.lock. Если тест не пройден и вы хотите заблокировать данный гем, , тогда укажите версию в Gemfile.

Вы можете прочитать о install --deployment и развертывании в документации по комплектации.

1 голос
/ 12 сентября 2011

«Замораживание» драгоценных камней в определенных версиях важно, и это обязательно, если вы готовите что-то для производства. Драгоценные камни, библиотеки и приложения развиваются со временем - и для развития иногда требуется изменить Gem API, и это нарушает обратную совместимость с предыдущими версиями.

Есть несколько старых и хороших статей, касающихся «замораживания» версии Rails (так мы называем «указание версии Gem» в прежние времена), таких как Замораживание DHH - это круто, так что заморозьте ради всего святого и Стоит ли заморозить мое Rails-приложение? .

Чтобы узнать, какую версию указать, я рекомендую указать последнюю версию. Просто gem install gemname, а затем gem list gemname, чтобы увидеть, какую версию вы только что установили.

...