我希望发布所有出勤率小于或等于(< =)当前记录的记录,但我正在苦苦挣扎。
我的模特是......
class Student < ActiveRecord::Base
has_many :attendances
has_many :classes, :through => :attendances
end
class Attendance < ActiveRecord::Base
belongs_to :student
validates :student_id, presence: true
belongs_to :class
validates :class_id, presence: true
end
class Class < ActiveRecord::Base
has_many :attendances
has_many :students, :through => :attendances
end
我想向所有其他学生展示&lt; =他们,但我的计算错误。
所以这是关于学生的#39;页面,它显示了一个班级中其他学生的表,他们的出勤率小于或等于他们自己的。
有人提醒我;
<% student_attend = @student.attendance.sum(:attend) %>
<% @student.joins(:attendance).where("attendance.attend <= ?", student_attend).each do |student| %>
......但这并不像我希望的那样。
有人能够指出我正确的方向吗?
提前谢谢!如果有人可以提供帮助,请尽快给PayPal一些咖啡钱: - )
答案 0 :(得分:0)
您可以在控制器级别或模型级别使用以下代码段。如果你在控制器级别使用它会更好。
您当前的学生对象为@student
@ids=[]
Student.find(:all).each do |stu|
@ids.push stu.id if stu.attendances.count<=@student.attendances.count
end