Ruby';s YAML.dump不与循环对象和自定义初始值设定项协作
假设我有一个类,我想用YAML序列化它的对象:Ruby';s YAML.dump不与循环对象和自定义初始值设定项协作,ruby,serialization,yaml,Ruby,Serialization,Yaml,假设我有一个类,我想用YAML序列化它的对象: class Thing attr_reader :var, :some_proc def initialize @var = self @some_proc = put_some_important_proc_here end end 显然,@some_proc不应该被序列化,所以我添加了这个方法来只序列化@var: def encode_with(coder) coder['var'] = @var end
class Thing
attr_reader :var, :some_proc
def initialize
@var = self
@some_proc = put_some_important_proc_here
end
end
显然,@some_proc
不应该被序列化,所以我添加了这个方法来只序列化@var
:
def encode_with(coder)
coder['var'] = @var
end
但是现在,当我尝试序列化这个对象时,我得到了一个堆栈溢出,因为它只是尝试一次又一次地序列化自己,而没有对循环对象执行YAML引用魔法。如何防止
@some_proc
字段被序列化?我看不到错误与上面发布的代码之间的任何关系。你能不能说得具体一点,你的代码的哪一部分是不合作的(除非我遗漏了什么)?当我尝试序列化东西时。使用YAML新建
时,我会遇到堆栈溢出。