あるクラスのインスタンスのリストがあります。そのクラスの 1 つのインスタンスを常に「選択」する必要があります。したがって、最初のインスタンスを作成するときは、それを選択済みとして設定する必要があり、選択済みのインスタンスが削除された場合は、そのクラスの別のインスタンスを選択済みとして設定する必要があります。
apple = Fruit.new
apple.favorite # true
pear = Fruit.new
pear.make_favorite!
apple.favorite # false
pear.favorite # true
pear.destroy
apple.favorite # true
Rails アプリの開発中にこのシナリオに何度か遭遇しましたが、無限の更新ループを発生させずにすべてのエッジ ケースをカバーしようとして、満足できず、バグを誘発するコールバックの山が常に発生してしまいました。誰かがこれのための良いパターンを知っていますか?