0

지금은 독립적 인 레코드로 VideoVote와 다양한 다 대다 연관이 있습니다.다형어 연관을 리치 다 대다 어소시에이션과 결합

class VideoVote < ActiveRecord::Base 
    belongs_to :user 
    belongs_to :video 
end 

class User < ActiveRecord::Base 
    has_many :video_votes 
    has_many :voted_videos, 
    :through => :video_votes, 
    :source => :video 
end 

class Video < ActiveRecord::Base 
    has_many :video_votes 
    has_many :voted_users, 
    :through => :video_votes, 
    :source => :user 
end 

는 그러나, 나는 의견이 많은 VideoVotes (나는이 혼란 실현, 그래서 아마 투표로 변경한다) 할 수 다형성 연관이 점을 trasform 싶다. (또한 비디오에는 많은 의견이 있습니다.) 어떻게해야합니까?

답변

1

먼저 video_votes 테이블에 voteable_id:integervoteable_type:string을 추가하려고합니다. 선명도

@video.video_votes 
@comment.video_votes 
#etc. 
+0

내가 그것을 의견 및 비디오 같은 다양한 것들에 속하는 투표를 생각 :

class VideoVote < ActiveRecord::Base belongs_to :voteable, :polymorphic => true end class Comment < ActiveRecord::Base has_many :video_votes, :as => :voteable #code end class Video < ActiveRecord::Base has_many :video_votes, :as => :voteable #code end 

그런 다음 당신은 다른 모든 has_many처럼 액세스 할 수 있습니다

그런 다음 모델은 모양을 . – Vadim

+0

아, 알겠습니다. 지금 코드 변경. –

+0

괜찮 았지만 이것이 어떻게 'has_many : through' 연관과 결합됩니까? 나는 비디오를 통해 투표를 통해 투표 한 사용자는 물론 투표를 통해 투표 한 비디오를 사용자가 가질 수 있기를 바랍니다. 나는 또한 투표를 통해 투표 한 사용자와 사용자가 투표를 통해 투표 한 의견을 가질 수있는 의견을 원합니다. –