我有以下课程。它们的工作方式相同:一个人可以是许多学校的监护人、雇员和学生,而且他们也有一个用户。
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 }
我只是不知道要写什么查询来包含所有三种情况。谢谢你的帮助