Ruby on Rails を使用していますが、一般的なソリューションにも関心があります。モデル ユーザー、モデル料理、およびこの 2 つを接続するリレーショナル テーブルがあり、ユーザーが「お気に入りの料理」のリストを持つことができるとします。ユーザーにはすべての料理のリストが表示され、個別にチェックを付けたり外したりできます。たとえば、アリスがアメリカ料理、インド料理、中華料理を好きになったとします。次に、中国語のチェックを外し、タイ語を追加して保存します。リレーショナル テーブルを更新する最善の方法は何ですか?
私には 3 つの解決策がありますが、この操作は非常に一般的であるため、より洗練された解決策を望んでいました。そうでない場合、これを行う標準的な方法は何ですか?
- 追加されたセットと削除されたセットを保持し、それらが重複していないことを確認してください
- ユーザーのお気に入りの食べ物をすべてドロップし、選択したものを挿入します
- 個々の追加と削除を更新する ajax 呼び出しを行う