HABTM テーブルの追加データを更新するにはどうすればよいですか。
例: movies
、people
および HABTMテーブルがありますが、特定の映画でのこの人物の役割を示すmovies_people
追加persontype_id
のフィールドがテーブルにあります。movies_people
この値を追加/変更するにはどうすればよいですか?
HABTM テーブルの追加データを更新するにはどうすればよいですか。
例: movies
、people
および HABTMテーブルがありますが、特定の映画でのこの人物の役割を示すmovies_people
追加persontype_id
のフィールドがテーブルにあります。movies_people
この値を追加/変更するにはどうすればよいですか?
おそらく、この理由で導入された has_many :through 関連付けを使用する必要があります。単なるmovies_peopleテーブルの代わりに、FavoriteやViewing(関連付けで達成しようとしているものに応じて)などと呼ばれる追加のモデルがあり、:moviesと:peopleの両方に属し、Movieモデルに含まれます、あなたがするだろう
has_many :favorites
has_many :people, :through => :favorites
これにより、この映画を気に入ったすべてのユーザーの movie.people へのアクセスが可能になり、movie.favorites を使用してお気に入りテーブルにあるもの (persontype_id など) にアクセスできるようになります。
Josh Susser の記事、Many-to-Many Dance Offは、私が望んでいたよりもはるかに優れた説明を行っているので、追加のヘルプが必要な場合は、それを参照してください。http://blog.hasmanythrough.com/2006/4/20/many-to-many-dance-off
Ryan Bates による、このテーマに関する優れた Railscast もあります。