Как исправить ошибку 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 ответа
Так как я не получил никакого решения этой проблемы и после поиска вокруг, я пришел к следующему решению -
- Удален драгоценный камень activeuuid из приложения.
- Реализованные uuids с классом Ruby SecureRandom - Rails 5 Mysql UUID
- В случае, если кто-то обнаружит проблему с сохранением записи, поскольку activeuuid ограничивает столбец базы данных 16 байтами, можно использовать SecureRandom.hex(8).encode("UTF-8")
Rails 5 имеет встроенную поддержку первичных ключей UUID, поэтому в идеале вы должны перейти от этого драгоценного камня...
Попробуйте просто удалить этот драгоценный камень из вашего проекта, и все должно быть в порядке.
Источник: https://github.com/jashmenn/activeuuid/issues/80
Однако, если вы хотите продолжать использовать этот драгоценный камень, вы можете найти (или создать свой собственный) форк. Последний коммит на оригинальный гем был 4 года назад (до релиза rails 5). Но я вижу вилки, где была реализована поддержка рельсов 5.