【发布时间】:2010-02-25 22:18:42
【问题描述】:
我有一个序列化一个属性的 rails 类。
类统计<:base>
序列化:用户列表
结束
当加载统计对象并且它的用户列表从字符串更改为数组时,用户列表总是会被序列化回字符串。该框架似乎会记住并将 :userlist 反序列化为字符串,即使它作为数组进入也是如此。
>> s = Statistic.find 238 => # # 注意这里::userlist 是 YAML 中的一个数组。为什么它不能正确反序列化? >> s.userlist.class => 字符串 >> s.userlist = s.userlist.split(/\s+/) >> s.userlist.class => 数组 >> s.保存 => 真 >> s.reload => # >> s.userlist.class => 字符串本练习的目标是将所有字符串用户列表转换为数组。 如果我在转换之前更改类(serialize :userlist, Array),我会收到 TypeMismatch 异常。
ActiveRecord::SerializationTypeMismatch: userlist 应该是一个数组,但实际上是一个字符串
有没有办法强制 AR 将用户列表解释为数组?
% rails --version Rails 2.3.4
【问题讨论】:
标签: ruby-on-rails serialization