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

StackOverflow https://stackoverflow.com/questions/450408

Вопрос

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

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

Это было полезно?

Решение

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

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

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

Статья Джоша Сусера, Многие ко многим Dance Off гораздо лучше объясняет это, на что я мог надеяться, поэтому для дополнительной помощи я бы посмотрел на это. http://blog.hasmanythrough.com/2006/ 4/20 / многие-ко-многим-дэнс-офф

Другие советы

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

http://railscasts.com/episodes/47-two-many -в-многих

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top