如何创建复制/复制mongoid对象?

Tra*_*der 9 ruby mongodb mongoid

ActiveRecord安全地支持dup,但mongoid似乎没有正确处理它.

我想做以下事情:

x = MyModel.new
x.save
y = x.dup
y.save
Run Code Online (Sandbox Code Playgroud)

y应该是一个全新的对象,这样:

x != y
x.id != y.id
Run Code Online (Sandbox Code Playgroud)

Vic*_*ash 19

试试这个:

x = Item.new
x.save
y = x.clone
y.save
Run Code Online (Sandbox Code Playgroud)

它应该更改_id并复制所有其他字段.我注意到这似乎不适用于嵌入式文档.对于原始中的每个嵌入式doc,它会在克隆中使用新id创建一个空白的嵌入式doc,但不会填充任何其他字段.

如果使用嵌入式文档,最好编写自己的类方法.