Rails 3 Сериализация проблема - PullRequest
5 голосов
/ 07 ноября 2010

У меня есть приложение, которое работало нормально с ror 2.3.x.У меня возникают проблемы при обновлении до Rails 3 с сериализацией.

Код выглядит следующим образом

class PaymentTransaction < ActiveRecord::Base
  serialize :response
end

Ответ должен содержать ActiveMerchant :: Billing :: Response.По рельсам 3 почему-то его сохраняют как строку.

=> #<PaymentTransaction id: 11, order_id: nil, amount: nil, mode: nil, payment_profile_id: nil, response: "#<ActiveMerchant::Billing::Response:0x1051aec98>", created_at: "2010-11-07 04:06:03", updated_at: "2010-11-07 04:24:58", result: "pending", payee: nil, login_id: nil, transaction_key: nil>

В других блогах не было заметок о сериализации, в которых говорилось об обновлении.Есть мысли?

Ответы [ 2 ]

3 голосов
/ 22 февраля 2012

Объяснения Rails 2 для использования сериализации для меня не работали в Rails 3, если я не указал тип сериализованного объекта в вызове serialize.Например:

serialize :response, Array

После указания массива функциональность сработала как ожидалось.

Дополнительная документация здесь:

http://api.rubyonrails.org/classes/ActiveRecord/Base.html

в разделе «Сохранение массивов[...] "

2 голосов
/ 07 ноября 2010

Произошло небольшое изменение в рельсах 3, которые имеют эффект: https://github.com/rails/rails/commit/c1d73270717f30498f8f4d55d6695509107c2834

Здесь есть два хороших сообщения в блоге о сериализации:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...