0

HABTM テーブルの追加データを更新するにはどうすればよいですか。

例: moviespeopleおよび HABTMテーブルがありますが、特定の映画でのこの人物の役割を示すmovies_people追加persontype_idのフィールドがテーブルにあります。movies_peopleこの値を追加/変更するにはどうすればよいですか?

4

2 に答える 2

3

おそらく、この理由で導入された 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

于 2009-01-16T14:11:00.627 に答える
2

Ryan Bates による、このテーマに関する優れた Railscast もあります。

http://railscasts.com/episodes/47-two-many-to-many

于 2009-01-16T16:59:20.257 に答える