Я часами боролся, пытаясь разработать метод класса или области, но у меня есть начальные знания SQLite, и все, что я пробовал и читал, до сих пор не увенчалось успехом.
Я пытаюсь найти способ упорядочить списки по их среднему рейтингу.
У меня есть ассоциация has_many/belongs_to между List и Rating. Списки имеют_много рейтингов, каждый список может иметь_много рейтингов. Затем у меня есть метод экземпляра, который вычисляет средний рейтинг списка:
def average_rating
self.ratings.average(:rating).to_i
end
Сейчас я пытаюсь найти способ упорядочить списки по их среднему рейтингу, но безуспешно. После другого сообщения я попробовал этот метод:
def self.highest_rating
List.all.sort_by(&:average_rating)
end
Но он просто возвращает все списки в произвольном порядке. С этим запросом:
SELECT AVG("ratings"."rating") FROM "ratings" WHERE "ratings"."rated_id" = ?
Я думал о том, чтобы сделать medium_rating атрибутом модели List, но у меня возникли трудности даже с разработкой метода области действия для этого. Если вы можете предложить какой-либо совет или помощь, я был бы очень признателен!