2015-10-20 55 views
0

我有一個多態關聯,我現在要做的就是獲取所有這些關係,但是按他們所屬的關係對它們進行細分。多態關聯中的段對象

我的問題:

has_many :question_participants 
    has_many :users, through: :question_participants, 
        source: :questionable, source_type: 'User' 
    has_many :groups, through: :question_participants, 
        source: :questionable, source_type: 'Group' 


# question can be assigned to Company, Group, User 
class QuestionParticipant < ActiveRecord::Base 
    belongs_to :question 
    belongs_to :questionable, polymorphic: true 
end 

現在我想要做的是通過屬於用戶所有問題,或屬於一個組的所有問題f.ex循環。我如何做到這一點。

回答

0

使用範圍。 在你question.rb,添加以下內容:

scope :user_questions, -> { includes(:question_participants).where(question_participants: { source_type: 'User' }) } 
scope :group_questions, -> { includes(:question_participants).where(question_participants: { source_type: 'Group' }) } 

然後你就可以訪問或者通過Question.user_questionsQuestion.group_questions