Как мне обойти has_many: через ограничение единой ассоциации? - PullRequest
0 голосов
/ 28 января 2010

Учитывая отношения

{
    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

Ни одна из этих работ. Каков наилучший способ обойти это - или мне просто нужно прочитать больше документации?

1 Ответ

1 голос
/ 29 января 2010

Не думаю, что вам повезет с этим. Я бы попробовал что-то более простое и просто применил метод комментария к модели голосования, например:

def comments
   Comment.find_all_by_proposal_id_and_user_id(self.proposal_id,self.user_id)
end

И точно так же вы все настроите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...