Как исправить ошибку gem activeuuid при обновлении с Rails4 до Rails5

Я обновляю свое приложение с rails 4 на rails 5. Мое приложение использует activeuuid gem. Gem activeuuid внутренне использует alias_method_chain, и этот метод устарел в rails 5. Теперь, когда я пытаюсь запустить консоль rails, я получаю сообщение об ошибке -

неопределенный метод "alias_method_chain" для ActiveRecord::ConnectionAdapters::Column:Class (NoMethodError)

В любом случае я могу продолжать использовать камень activeuuid в рельсах 5 и не нужно делать никаких переделок?

2 ответа

Так как я не получил никакого решения этой проблемы и после поиска вокруг, я пришел к следующему решению -

  1. Удален драгоценный камень activeuuid из приложения.
  2. Реализованные uuids с классом Ruby SecureRandom - Rails 5 Mysql UUID
  3. В случае, если кто-то обнаружит проблему с сохранением записи, поскольку activeuuid ограничивает столбец базы данных 16 байтами, можно использовать SecureRandom.hex(8).encode("UTF-8")

Rails 5 имеет встроенную поддержку первичных ключей UUID, поэтому в идеале вы должны перейти от этого драгоценного камня...

Попробуйте просто удалить этот драгоценный камень из вашего проекта, и все должно быть в порядке.

Источник: https://github.com/jashmenn/activeuuid/issues/80

Однако, если вы хотите продолжать использовать этот драгоценный камень, вы можете найти (или создать свой собственный) форк. Последний коммит на оригинальный гем был 4 года назад (до релиза rails 5). Но я вижу вилки, где была реализована поддержка рельсов 5.

Другие вопросы по тегам