У меня есть три модели User
, и Grade
.ActiveRecord :: Запрос к соединению для сгруппированных объектов
class User< ActiveRecord::Base
has_many :grades
end
class Subject < ActiveRecord::Base
has_many :grades
end
class Grade < ActiveRecord::Base
belongs_to :user
belongs_to :subject
end
У пользователя может быть несколько оценок по одной теме.
На странице пользователя я хотел бы показать его оценку average
и maximum
по каждому предмету. Каков наилучший способ его достижения?
User: Qwerty
Grades:
-------------------------------
subject average maximum
-------------------------------
"subject_1" 56 97
"subject_2" 45 85
Насколько я знаю, ActiveRecord::Relation имеет специальные методы для maximum
и average
, но я не знаю, как получить ActiveRecord::Relation
-объект для каждой группы сортов.
Спасибо за отличное решение! Кстати, похоже, что без '.joins (: subject)' запрос все еще работает правильно. – user1179942