Rails活动目录过滤器关联

时间:2018-11-14 08:57:08

标签: sql ruby-on-rails join activerecord rails-activerecord

我在Rails应用程序中进行以下设置:

  • has_many:positions
  • has_many:部门

位置

  • has_many:people
  • 属于:部门

部门

  • has_many:people
  • has_many:职位

一个人可以属于多个部门,一个职位也可以属于多个部门(每个部门的人可以有不同的职位)... Joe Bloggs是Dept_1的一名清洁工,Dept_2的一名教师,依此类推...我不得不两次对部门进行筛选(职位和人员)

我想为一个部门创建一个“人员”页面,以显示该部门的所有已分配人员以及他们在该部门中的职位(如果有),例如在Dept_1人员页面上将Joe列为清洁员,在Dept_2人员页面上将Joe列为教师。

我正试图让Dept_1的所有清洁工都像这样:

@cleaners = Person.joins(:departments).where(:department => {:name =>"Dept_1"})
                  .includes(positions: :department)
                  .where(:department => {:name => "Dept_1"})
                  .where(:position => {:name => "Cleaner"})

但这显示了其他部门的人员职位。

任何提示将不胜感激。

谢谢。

0 个答案:

没有答案