如何用ruby复制记录(在rails之外)?

时间:2016-09-13 16:37:29

标签: ruby

我有一个对象ID为19475160的哈希,我需要克隆我的哈希,我该怎么做呢?我发现的每一篇谷歌搜索和文章都指向我的rails解决方案,但我找不到任何常规的ruby解决方案。

2 个答案:

答案 0 :(得分:1)

这将执行对象的浅表副本:

 obj2 = obj.clone

这将执行对象的深层复制:

  obj2 = Marshal.load(Marshal.dump(obj))

答案 1 :(得分:0)

您可以使用dup

h = {a:1}
h2 = h.dup
h[:a] = 2
h2
=> {:a=>1}

hh2有不同的object_id。

来自dup reference

  

生成obj的浅表副本 - 复制obj的实例变量,但不复制它们引用的对象。