0

직원 인덱스 페이지에는 검색 필드가있는 'Region Name'열이 있습니다.여러 테이블을 레일로 가로 질러 검색

지금 난 지역 '테이블'에 통과, 테이블 '직원'에서 '열 'Region 이름을 검색해야

Employee -> Company -> Organization -> Region 

직원 테이블은 회사의 외래 키 (COMPANY_ID)

회사 테이블이 있습니다 기구 (ORGANIZATION_ID)

조직 테이블

지역 테이블 컬럼이있는 지역 (REGION_ID)의 외래 키가 'region_의 외래 키가 이름이 '

class Employee < ActiveRecord::Base 
    belongs_to :company 
    belongs_to :organization  
end 

class Company < ActiveRecord::Base 
    belongs_to :organization 
    has_many :employee 
end 

class Organization < ActiveRecord::Base 
    belongs_to :region 
    has_many :company 
    has_many :employees, through: :companies 
end 

class Region < ActiveRecord::Base 
    has_many :companies 
    has_many :employees, through: :companies 
end 

이 어떻게 3 개 테이블과 표시 그 지역의 종업원의 인덱스 페이지에서 직원의 목록을 가로 지르는 검색 할 수 있습니다 내 모델은?

참고 : 데이터베이스 PostgreSQL은

답변

1

이 작업을 시도 할 수 있습니다 :

Employee.joins(company: {organization: :region}).where(regions: {region_name: 'Your Region Name'})

관련 문제