Rails 3序列化问题

我有一个适用于ror 2.3.x的应用程序。 我无法使用序列化升级到Rails 3。

代码看起来像这样

class PaymentTransaction < ActiveRecord::Base serialize :response end 

响应应该包含ActiveMerchant :: Billing :: Response。 由于某种原因,使用rails 3将其保存为字符串。

 => #<PaymentTransaction id: 11, order_id: nil, amount: nil, mode: nil, payment_profile_id: nil, response: "#", 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> 

在任何其他关于升级的博客中,我都没有关于序列化的任何注释。 有什么想法吗?

rails 3中的一个小变化产生了影响: https : //github.com/rails/rails/commit/c1d73270717f30498f8f4d55d6695509107c2834

这里有两篇关于序列化的好文章:

除非我还在序列化调用中指定了序列化对象的类型,否则使用序列化的Rails 2解释在Rails 3中不起作用。 例如:

 serialize :response, Array 

指定数组后,function按预期工作。

更多文档:

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

在“Saving Arrays […]”下