У меня есть модель клуба, где я хочу смоделировать две сущности Встреча и Участник.
Между этими двумя сущностями фактически существуют два отношения «многие ко многим», так как для любого собрания Участник может быть либо докладчиком, либо гостем. Теперь я мыслитель ОО, поэтому обычно просто создаю два класса, и каждый из них просто имеет два массива другого внутри, но рельсы заставляют меня думать здесь немного больше о данных, поэтому я понимаю, что мне нужно разбить эти M2M отношения с таблицами соединения Спикеры и гости, которые я сделал, но теперь у меня возникают проблемы с описанием отношений в моделях.
Обе модели таблиц соединений имеют «принадлежат: собрание:» и «принадлежат: член», и я думаю, этого должно быть достаточно.
Я, однако, не уверен насчет моделей Meeting и Member.
У каждого есть "has_many: гости" и "has_many: динамики", но я не уверен, хочу ли я также пойти:
has_many: members,: through =>: гости
has_many: members,: through =>: докладчики
Но я подозреваю, что это похоже на объявление двух "членов", которые будут конфликтовать.
Я тоже думал о:
has_many: гости,: через =>: гости
has_many: колонки,: через =>: колонки
Имеет ли это смысл? Как ActiveRecord узнает, что они на самом деле являются его членами?
Я нашел множество примеров полиморфных отношений m2m и m2m, где 1 таблица ссылается на себя, но нет хороших примеров, чтобы помочь мне смоделировать эту ситуацию, когда две отдельные таблицы имеют два разных отношения m2m.
Кто-нибудь получил какие-нибудь советы?