User などのモデルがあり、このモデルの 2 つのインスタンスをマージしたいとします。たとえば、User2 を User1 にマージします。明示的にこれが私が意味することです:
フィールドが User1 で既に入力されている場合、同じままにする必要があります。
フィールドが User1 になく、User2 に存在する場合は、コピーする必要があります。
SomeModel BelongsTo User の場合、User2 を指す SomeModel のすべてのインスタンスは、User1 を指すように変更する必要があります。
SomeModel HasAndBelongsToMany ユーザーの場合も同様
SomeModel に User2 があり、SomeModel1 に User2 があり、他のインスタンスに User1 がない場合は、SomeModel1 に代わりに User1 があるように変更する必要があります。
SomeModel HasMany User の場合、SomeModel1 には User1 があり、SomeModel2 には User2 があります...まあ、ここではわかりませんが、唯一の解決策は SomeModel2 を破棄することだと思います。
最後に、User2 を削除する必要があります。
これを自動化する方法はありますか?多分振る舞い?そうでない場合は、たくさん必要になるので作成を検討するかもしれません。