0

Я хочу опубликовать все записи, которые имеют значение меньше или равно (< =) текущей записи, но я борюсь.Фильтрация таблицы объединений значениями, которые меньше или равны их собственным

Моя модель ...

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 

Я хочу, чтобы показать против нынешнего студента всех других студентов с посещаемостью < = к ним, но мой расчет неправильно.

Так что это на странице «Студент», и в нем показаны таблицы других учеников в их классах, посещаемость которых меньше или равна их собственным.

Кто-то предупредил меня;

<% student_attend = @student.attendance.sum(:attend) %> 

<% @student.joins(:attendance).where("attendance.attend <= ?", student_attend).each do |student| %> 

... но это не совсем так, как я надеялся.

Будет ли кто-то добрым, чтобы указать мне в правильном направлении?

Спасибо заранее! Счастливые PayPal некоторые деньги кофе, если кто-то может помочь :-)

+0

Пожалуйста, вы можете разместить структуру АЬЬепйапсе модели? – AshwinKumarS

ответ

0

Вы можете использовать следующий код на уровне вашего контроллера или на уровне модели. Это лучше, если вы используете это на уровне контроллера.

Ваш текущий объект студент @student

@ids=[] 
Student.find(:all).each do |stu| 
    @ids.push stu.id if stu.attendances.count<[email protected] 
end 
Смежные вопросы