Если у меня есть следующие модели, как я могу вернуть все отчеты, созданные пользователем, но только отчет с «самой высокой оценкой» на игрока?
class Player < ApplicationRecord
has_many :reports
end
class Report < ApplicationRecord
belongs_to :author
belongs_to :grade
belongs_to :player
end
class Grade < ApplciationRecord
has_many :reports
end
class Author < ApplicationRecord
has_many :reports
end
Пример данных:
/Player/ - /Author/ - /Report Grade/
John Smith - David - 5
John Smith - David - 4
Thomas Li - David - 5
Mike Lee - Sean - 9
Mike Lee - Sean - 2
Arnold Jackson - Sean - 5
Cathleen Miller - Sean - 7
Результат Мне бы хотелось:
/Player/ - /Author/ - /Report Grade/
John Smith - David - 5
Thomas Li - David - 5
Mike Lee - Sean - 9
Arnold Jackson - Sean - 5
Cathleen Miller - Sean - 7
В настоящее время я использую следующее:
Report.joins(:player).where(type: %w(spring fall))
Я не уверен, как отфильтровать записи с более низкими оценками.Если мне нужно добавить больше информации, пожалуйста, дайте мне знать.