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

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

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

Могу ли я продолжать использовать активный гем в рельсах 5 и мне не нужно делать какие-либо доработки?


person Harshwardhan Rathore    schedule 02.05.2019    source источник


Ответы (2)


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

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

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

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

person QNester    schedule 04.05.2019
comment
Я использовал это - github.com/vindi/activeuuid/network/dependencies, но это дает ошибка при запуске сервера - неверное количество аргументов (дано 2, ожидается 1) ...bundler/gems/activeuuid-5d63f0b44ba6/lib/activeuuid/patches.rb:112:in `quote' - person Harshwardhan Rathore; 06.05.2019

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

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