在Rails中,非常基本的东西我没有尝试,但没有得到选择。我正在尝试获取没有奖学金数据的用户的值。
学生
[ id, name, standard ]
1, John, X
2, Alex, XII
3, James, X
4, Steve, XI
5, Richard, XI
ScholarShip
[ id, student_id, type_of_scholarship ]
1, 1,"Edward Scholar"
2, 3,"McVince Scholar"
学生has_one ScholarShip作为协会
现在我正在尝试创建对象的学生记录,没有奖学金在UI创建下拉列表
Rails:@student = Student.some_method_to_fetch_those_students_dnt_have_scholarship
发布于 2015-12-01 07:43:38
你可以通过这样做得到没有奖学金的学生:-
Class Student
def self.get_students_which_has_not_scholarship
students = self.all
scholar_ship_students_ids = Scholarship.pluck(:student_id)
students.select{ |student| !scholar_ship_students_ids.include?(student.id) }
end
end
然后你就可以称之为:-
@students = Student.get_students_which_has_not_scholarship
发布于 2015-12-01 07:53:27
你想要的东西
Student.joins("LEFT JOIN Scholarship ON Student.id = ScholarShip.student_id").where("ScholarShip.id IS NULL")
您可以在“学生”上将其作为一个范围,并将其命名为您喜欢的名称:
scope :without_scholarships, -> {
joins("LEFT JOIN Scholarship ON Student.id = ScholarShip.student_id").where("ScholarShip.id IS NULL")
}
调用它就像调用类方法一样
Student.without_scholarships
这将返回一个可以链接在一起的关系,即
Student.without_scholarships.order(:grade_point_average)
或者其他什么
https://stackoverflow.com/questions/34014754
复制相似问题