【问题标题】:Rails 3 Serialization issueRails 3序列化问题
【发布时间】:2011-05-06 05:09:08
【问题描述】:

我有一个在 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: "#<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>

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

【问题讨论】:

    标签: ruby-on-rails serialization activerecord


    【解决方案1】:

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

    serialize :response, Array
    

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

    更多文档在这里:

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

    在“保存数组 [...]”下

    【讨论】:

      【解决方案2】:

      【讨论】:

      • 关于我应该如何解决这个问题的任何想法。我确实通过添加一个添加 to_s 方法来响应的初始化程序来解决它,但我想看看是否有更好的方法来做到这一点..
      猜你喜欢
      • 2011-04-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-10
      • 1970-01-01
      • 2011-05-11
      • 1970-01-01
      • 2011-05-16
      相关资源
      最近更新 更多