Ruby on Rails에서 트리플 가입
-
10-07-2019 - |
문제
나는 Ruby on Rails의 협회에 관한 질문이 있습니다. 응용 프로그램에는 프로젝트, 사용자, 역할 및 그룹이 있습니다. 이 프로젝트는 사용자가있는 그룹에 속하며, 사용자는 여러 그룹에 속할 수 있지만 해당 그룹 내에서 하나의 특정 역할을 수행 할 수 있습니다. 예를 들어:
한 그룹에서 사용자는 프로젝트 소유자이지만 다른 그룹에서는 작가입니다.
레일의 내장 기능을 사용하여이를 구현하는 가장 좋은 방법은 무엇입니까?
감사
해결책
다음은 요구 사항을 충족 해야하는 매우 빠른 모델 세트입니다.
class User < ActiveRecord::Base
has_many :group_memberships
has_many :groups, :through => :group_memberships
end
class GroupMembership < ActiveRecord::Base
belongs_to :user
belongs_to :role
belongs_to :group
end
class Role < ActiveRecord::Base
has_many :group_memberships
end
class Group < ActiveRecord::Base
has_many :group_memberships
has_many :users, :through > :group_memberships
end
기본적으로 사용자, 그룹 및 역할 ID가있는 조인 테이블이 있습니다. 질문자를위한 운동으로 마이그레이션을 떠날 게요
제휴하지 않습니다 StackOverflow