我正在使用 Ruby on Rails,但也对通用解决方案感兴趣。假设我有一个模型用户、一个模型菜系和一个连接两者的关系表,允许用户拥有一个“最喜欢的菜系”列表。用户会看到所有美食的列表,并且可以单独选中或取消选中它们。例如,假设 Alice 开始喜欢美国、印度和中国食物。然后她取消选中中文并添加泰语并点击保存。更新关系表的最佳方法是什么?
我有三个解决方案,但由于这个操作看起来很常见,我希望有一个更优雅的解决方案。如果没有,执行此操作的标准方法是什么?
- 保留一组添加和一组删除,并确保它们没有重叠
- 删除所有用户最喜欢的食物并插入选定的食物
- 进行 ajax 调用以更新每个单独的添加和删除