我有某个类的实例列表。必须始终“选择”该类的一个实例。因此,当第一个实例被创建时,它必须被设置为选中,如果一个选中的实例被移除,另一个来自该类的实例必须被设置为选中。
apple = Fruit.new
apple.favorite # true
pear = Fruit.new
pear.make_favorite!
apple.favorite # false
pear.favorite # true
pear.destroy
apple.favorite # true
我在开发 Rails 应用程序时遇到过几次这种情况,并且总是以令人不满意的、引起错误的一堆回调来尝试覆盖所有边缘情况而不会导致无限更新循环。有谁知道一个很好的模式?