1

我有以下课程。它们的工作方式相同:一个人可以是许多学校的监护人、雇员和学生,而且他们也有一个用户。

class User < ActiveRecord::Base
  belongs_to :person
end

class Person < ActiveRecord::Base
  has_many :guardians
  has_many :employee
  has_many :students
end

class Guardian < ActiveRecord::Base
  belongs_to :person
  belongs_to :school
end

class Student < ActiveRecord::Base
  belongs_to :person
  belongs_to :school
end

class Employee < ActiveRecord::Base
  belongs_to :person
  belongs_to :school
end

如何在一次查询中检索属于特定学校的所有用户?例如,要获取所有员工用户,我可以执行(使用squeelgem):

User.joins { person.employees }.where { person.employees.school_id == school_id }

我只是不知道要写什么查询来包含所有三种情况。谢谢你的帮助

4

0 回答 0