2010-01-28 56 views
0

鑑於關係我如何解決has_many:通過單個關聯限制?

{ 
    proposals(id, ...), 
    reviewers(id, ...), 
    comments(id, user_id, proposal_id, ...), 
    votes(id, user_id, proposal_id, ...) 
} 

我怎麼可以創建投票關聯評論?每位評論者可以對提案進行一次投票,「對投票創建唯一索引(user_id,proposal_id)」,並且可以多次評論。評論者可以評論,而不是投票或投票,而不是評論,因此他們不會依賴投票和評論。在投票模式中,我希望關聯與(user_id,proposal_id)上匹配的許多評論。這些是與評論者對提案進行投票相關的評論。

協會

class Vote < ActiveRecord::Base 
    belongs_to :reviewer 
    belongs_to :proposal 
    has_many :comments, :through => :proposal 
end 

將從所有評審產生的意見。同樣

has_many :comments, :through => :reviewer 

將產生來自所有提案的評論。我想要上面兩組評論的交集。

是否有可能

has_many :comments, :through => [:reviewer, :proposal] 

has_many :comments, :through => :reviewer, :scope => :proposal_id 

無論這些工作。什麼是解決這個問題的最佳方法 - 或者我只需要閱讀更多文檔?

回答

1

我不認爲你會有那麼多運氣。我想嘗試一些更簡單,只是做一個註釋方法表決模型,如:

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

就這樣,你會在所有的設置。

相關問題