문제

나는 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가있는 조인 테이블이 있습니다. 질문자를위한 운동으로 마이그레이션을 떠날 게요

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top