11

ActiveRecord は安全にdupをサポートしていますが、mongoid はそれを適切に処理していないようです。

私は次のことをしたいと思います:

x = MyModel.new
x.save
y = x.dup
y.save

y は、次のような完全に新しいオブジェクトである必要があります。

x != y
x.id != y.id
4

1 に答える 1

21

これを試して:

x = Item.new
x.save
y = x.clone
y.save

_id を変更し、他のすべてのフィールドをコピーする必要があります。ただし、これは埋め込みドキュメントでは機能しないようです。元の埋め込みドキュメントごとに、クローンに空の埋め込みドキュメントを新しい ID で作成しますが、他のフィールドには入力しません。

埋め込みドキュメントを扱う場合は、独自のクラス メソッドを作成する方がよい場合があります。

于 2012-08-21T23:12:04.777 に答える