Как редактировать дополнительные данные в таблицах HABTM? - PullRequest
0 голосов
/ 16 января 2009

Как обновить дополнительные данные в таблицах HABTM.

Например: у меня есть таблицы movies, people и HABTM movies_people, но в таблице movies_people есть дополнительное поле persontype_id, которое указывает роль этого человека в этом конкретном фильме. Как мне добавить / изменить это значение?

Ответы [ 2 ]

3 голосов
/ 16 января 2009

Вероятно, вам следует использовать has_many: through ассоциацию, которая была введена именно по этой причине. Вместо простой таблицы movies_people у вас будет дополнительная модель, называемая чем-то вроде Favorite или Просмотр (в зависимости от того, чего вы пытаетесь достичь с помощью ассоциации), которая принадлежит_ как: movies и: people, так и вашей модели Movie. , ты бы сделал

has_many :favorites
has_many :people, :through => :favorites

Это дает вам доступ к movie.people для всех людей, которые одобрили этот фильм и movie.favor для доступа ко всему, что будет в вашей таблице избранного (например, persontype_id)

Статья Джоша Сассера, Танец «многие ко многим» гораздо лучше объясняет это, на что я мог надеяться, поэтому для дополнительной помощи я бы посмотрел на это. http://blog.hasmanythrough.com/2006/4/20/many-to-many-dance-off

2 голосов
/ 16 января 2009

Существует также отличный Railscast по этому вопросу, Райан Бейтс:

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

...