次のクラスがあるとします。
class Fruit { ... }
class Apple extends Fruit { ... }
class Orange extends Fruit { ... }
ユーザーが新しい を作成したいとしましょうApple
。ドロップダウンから型を選択し、サービスを使用して型文字列を具体的な型に変換します。
def fruit = FruitService.createFruit(params.type)
fruit.properties = params
fruit.save()
Apple
これにより、新しいインスタンスが正常に保存されます。
ここで、ユーザーが間違いを犯したことに気づき、Orange
代わりに を作成したいとしましょう。編集ビューでは、ユーザーがタイプを に変更できるようにしていますが、既存のインスタンスを に変更Orange
するにはどうすればよいですか? 他の関係があるため、単純に を削除して新しいインスタンスを作成することはできません。これは可能ですか?Apple
Orange
Orange
Apple