У меня есть следующие настройки в моих приложениях на Rails:
Person
- has_many: должности
- has_many: отделы
Должность
- has_many: люди
- принадлежит_в: отдел
Отдел
- has_many: люди
- has_many: позиции
Человек может принадлежать к нескольким отделам, и должность также может принадлежать нескольким отделам (у человека может быть разная должность для каждого отдела) ... например, Джо Блоггс работает уборщиком вDept_1 и преподаватель в Dept_2 и т. Д. ... Мне нужно дважды отфильтровать отдел (как для должности, так и для сотрудника)
Я хочу создать страницу "люди" для отдела, показывающую всех назначенных сотрудников этого отдела, ноа также должность, которую они занимают в этом отделе (если есть), например, перечислите Джо уборщиком на странице людей Dept_1 и учителем на странице людей Dept_2.
Я пытался получить все чистящие средства для Dept_1, например:
@cleaners = Person.joins(:departments).where(:department => {:name =>"Dept_1"})
.includes(positions: :department)
.where(:department => {:name => "Dept_1"})
.where(:position => {:name => "Cleaner"})
, но это показывает позиции людей из других отделов.
Любые советы будут с благодарностью.
Спасибо.