Поиск по нескольким таблицам в рельсах
На странице "Индекс сотрудников" у меня есть столбец "Имя региона" с полем поиска.
Теперь мне нужно искать столбец-"Имя региона" из таблицы "Сотрудник", переходя к таблице "Регион"
Employee -> Company -> Organization -> Region
Таблица сотрудников имеет внешний ключ компании (company_id)
Таблица компании имеет внешний ключ организации (organization_id)
Организационная таблица имеет внешний ключ Region(region_id)
Таблица регионов имеет столбец 'region_name'
Это мои модели
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'})