我已经建立了模特用户和学校,其中一所学校的名字叫哈佛。我希望能够归还所有哈佛学校的用户。这部分代码位于user.rb文件中。
def self.harvard_students
return User.where.School(name: 'Harvard')
end
答案 0 :(得分:0)
我会这样做:
# in models/user.rb
scope :harvard_students, -> { joins(:school).where(schools: { name: 'Harvard' }) }
或作为班级方法:
def self.harvard_students
joins(:school).where(schools: { name: 'Harvard' })
end
像这样使用:
User.harvard_students
答案 1 :(得分:0)
假设您的关系设置如下,那么这应该有效。除非您确定要以不同方式对待这些学生,否则我建议不要使用硬编码harvard_students
模型。
class School < ActiveRecord::Base
has_many :students
end
class User < ActiveRecord::Base
belongs_to :school
def self.harvard_students
School.find_by(name: "Harvard").users
end
end
#....
User.harvard_students