Учитывая отношения
{
proposals(id, ...),
reviewers(id, ...),
comments(id, user_id, proposal_id, ...),
votes(id, user_id, proposal_id, ...)
}
как я могу создать ассоциацию от голосования до комментария? Каждый рецензент может один раз проголосовать за предложение «создать уникальный индекс для голосов (user_id, offer_id)» и может комментировать много раз. Рецензент может комментировать, а не голосовать или голосовать и не комментировать, так что они не зависят от голосов и комментариев. Из модели голосования я хочу связать множество комментариев, которые соответствуют (user_id, offer_id). Это комментарии, относящиеся к голосованию рецензентов по предложению.
Ассоциация
* +1007 *
даст комментарии от всех рецензентов. Точно так же
has_many :comments, :through => :reviewer
даст комментарии по всем предложениям. Я хотел бы пересечение двух вышеупомянутых наборов комментариев.
Возможно ли
has_many :comments, :through => [:reviewer, :proposal]
или
has_many :comments, :through => :reviewer, :scope => :proposal_id
Ни одна из этих работ. Каков наилучший способ обойти это - или мне просто нужно прочитать больше документации?