【发布时间】:2012-02-28 23:34:24
【问题描述】:
我正在尝试将嵌套哈希保存到我的数据库并检索它,但检索时嵌套值丢失。
我的模型如下所示:
class User
serialize :metadata, MetaData
end
MetaData 类如下所示:
class MetaData < Hash
attr_accessor :availability, :validated
end
我用来存储数据的代码看起来像这样(不过,真正的数据来自 HTML 表单):
user = User.find(id)
user.metadata.validated = true
user.metadata.availability = {'Sunday' => 'Yes', 'Monday' => 'No', 'Tuesday' => 'Yes'}
user.save
当我查看数据库中的数据时,我看到以下内容:
--- !map:MetaData
availability: !map:ActiveSupport::HashWithIndifferentAccess
Sunday: "Yes"
Monday: "No"
Tuesday: "Yes"
validated: true
当我再次尝试获取对象时出现问题:
user = User.find(id)
user.metadata.validated # <- this is true
user.metadata.availability # <- this is nil
有什么想法吗?我正在使用带有 Postgresql 的 Rails 3.1 作为我的数据存储。
【问题讨论】:
标签: ruby-on-rails ruby postgresql