2017-04-14 1 views
0

has_many through 관계가있는 몇 가지 모델이 있습니다.특정 하위 유형에 대해 has_many 관계를 1로만 제한하는 방법

class Participant < ActiveRecord::Base 
    has_many :participant_scores 
    has_many :groups, through: :participant_scores 
end 

class Group < ActiveRecord::Base 
    has_many :participant_scores 
    has_many :participants, through: :participant_scores 
end 

class ParticipantScore < ActiveRecord::Base 
    belongs_to :group 
    belongs_to :participant 
end 

나는 다른 유형의 그룹을 가질 필요가 있으며 그 중 참가자는 그 유형의 멤버 중 하나 일 수 있습니다.

예를 들어 한 회사에서 여러 부서와 위치가 있지만 한 사람은 한 부서와 한 위치에만 연결할 수 있습니다. 다른 한편으로는 제한이없는 일반적인 그룹이 있습니다. 예를 들어, 많은 사교 클럽이있을 수 있으며, 어떤 회원도 회원 수에 제한이 없습니다.

그룹핑은 유일한 차이점은 몇 가지 내가 단일 테이블 상속을 사용하여 고려했습니다 1.

의 구성원이 주위에 제한이 있음을 인으로, 모두 같은 행동 적,하지만 난 알아 낸 적이 없다 그것을 단지 1 협회로 제한하는 방법. type 열을 추가 한 다음 유효성 검사를 통해 제한 하시겠습니까? 범위를 사용 하시겠습니까?

그 중 어느 것도 최적으로 보이지 않습니다. 어떻게하면 가장 잘 수행 할 수 있습니까?

답변

관련 문제