PG :: Ошибка: был очищен результат рельсовой серилизации

0

в моей базе данных мы имеем сериализованное значение в одном столбце, как показано ниже

считать, что таблица является тестом и подана, является мета

---------------------------------------------------------------------
ID          Name                meta
------------------------------------------------------------------------
726345      test               - :status: :success
                                 :result: !ruby/object:PG::Result {}
-------------------------------------------------------------------------

при написании запроса с использованием Active record Test.select('meta').where(:id=> 726345)

это ошибка бросания: PG::Error Exception: result has been cleared

для восстановления столбцов Имя и идентификатор работают нормально. Я понял ошибку с ключом результата, но я не знаю, как решить эту проблему.

любая помощь??

Rails - 5.1, ruby - 2.2.5, mysql - 5.6

заранее спасибо

Теги:
serialization
activerecord

1 ответ

0

При записи вы сериализуете пустой объект PG::Result. При запросе рельсы пытаются десериализовать его с помощью PG::Result.new, что не работает

> PG::Result.new

PG::Error: result has been cleared

Чтобы исправить это, вы можете просто очистить столбец. В любом случае, это не имеет никакого практического применения.

Я действительно не понимаю, почему вы сериализуете результат postgtresql в mysql, хотя

  • 0
    Спасибо за объяснение, у меня есть много записей в моей базе данных с тем же объектом PG :: Result, некоторые столбцы имеют объект с ключами, некоторые столбцы пусты, как указано выше. Можете ли вы предложить мне правильный способ запроса, даже если объект PG :: Result пуст
  • 0
    какие-либо обновления в комментарии?
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню