【发布时间】:2018-01-25 02:31:35
【问题描述】:
我有一个活动记录模型,它有一个名为configuration 的文本类型的列。该列使用自定义类进行序列化,如下所示:
class MyModel < ApplicationRecord
serialize :configuration, MySerializer
end
MySerializer 类有以下类方法:
def dump(configuration)
configuration.to_json if configuration
end
def load(configuration)
obj = new
obj.json_hash = JSON.parse(configuration) if configuration.present?
obj
end
这将使用 attr 访问器 json_hash 实例化类 MySerializer 的实例。
现在,问题来了,我正在做:
MyModel.create(configuration: {"key" => 1})
一旦我做MyModel.first,我就明白了:
...
configuration:
#<MySerializer:0x00000007faa558
@json_hash={"json_hash"=>{"key" => 1}
我期待得到类似的东西:
@json_hash = {"key" => 1}
知道为什么我会在 attr 访问器 @json_hash 中得到重复的键 json_hash 吗?
谢谢!
【问题讨论】:
标签: ruby-on-rails ruby serialization