belongs_to
연관을 정의하는 방법을 알아 내려고합니다. 목표 레코드가 4 개의 다른 열 중 하나에서 발견 될 수 있습니다. 셋업 :레일 belongs_to 여러 외래 키와의 연관
사용자
class User < ActiveRecord::Base
has_many :managerships, foreign_key: :employee_id
has_many :managers, through: :managerships
end
Managership
class Managership < ActiveRecord::Base
belongs_to :employee, class_name: 'User'
belongs_to :manager # <-- ideas?
end
managerships
표 4 열이 manager_id
, 우리는 사용자의 관리자를 검색하는 데 사용할 수있는 manager_custom_id
, manager_email
, manager_saml_id
. Managership
에 대해이 열 중 하나만 존재합니다. 내가 방법을 찾고 있어요
이 user.managers
를 호출 할 수는 모든 사용자를 반환하도록 (관리자는 User
입니다) 여기서 어떤 아이디어에 대한 managerships.manager_id = users.id OR managerships.manager_custom_id = users.custom_id OR managerships.manager_email = users.email OR managerships.manager_saml_id = users.saml_id
많은 감사합니다!
belongs_to :manager
의 선언 할 수 있습니다. 이 방법이 될 수 있지만 관리자를 반환하지 않습니다. 'self.class.joins (: managerships)'는 관리자가 아닌 모든 사용자를 반환합니다 ('has_many : managerships, foreign_key :: employee_id' 참조). 관리자가 아닌 –@JanKlimo 맞아. SQL을 통해 생각해 보겠습니다. 쉬운 문제는 아닙니다. / –