Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby';s YAML.dump不与循环对象和自定义初始值设定项协作_Ruby_Serialization_Yaml - Fatal编程技术网

Ruby';s YAML.dump不与循环对象和自定义初始值设定项协作

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

假设我有一个类,我想用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

但是现在,当我尝试序列化这个对象时,我得到了一个堆栈溢出,因为它只是尝试一次又一次地序列化自己,而没有对循环对象执行YAML引用魔法。如何防止
@some_proc
字段被序列化?

我看不到错误与上面发布的代码之间的任何关系。你能不能说得具体一点,你的代码的哪一部分是不合作的(除非我遗漏了什么)?当我尝试序列化
东西时。使用YAML新建
时,我会遇到堆栈溢出。