我有以下课程。他们的工作方式相同:一个人可以成为许多学校的监护人,员工和学生,他们也有一个用户。
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
如何在一个查询中检索属于特定学校的所有用户?例如,要获得所有员工,我可以执行(使用squeel
gem):
User.joins { person.employees }.where { person.employees.school_id == school_id }
我只是不知道写什么查询包括所有三种情况。谢谢你的帮助