假设我有 2 个模型:设备和设置。我需要跟踪和控制每台设备的设置。设备和设置的数量将随着时间的推移而增长。显然是多对多的情况,所以我打算使用“has_many :through”方法,第三列是 device_settings 表中的设置值。
我的挑战是,随着新设置的添加,我想确保所有设备都在 device_settings 表中填充了所有设置(设置模型有一个 default_value 属性,可用于填充 device_settings.value 属性)。一旦将设置添加到表中,就很容易确保新设备或编辑的设备插入新的设置行。但是有没有一种干净的方法来改造现有设备?
在某些时候系统会更新设备设置,我想避免在此过程中处理缺失值的复杂逻辑。我认为最好强制桥表首先包含所有行。
我可以并且已经编写了一些丑陋的代码(循环等)来填充设置模型上 :after_save 上的 device_settings 表,但我正在寻找更清洁的东西。
谢谢