Я часами пытаюсь разработать метод класса или области видимости, но имею новичок в области SQLite, и все, что я пробовал и прочитал, до сих пор не удалось.Как создать метод класса/области, который заказывает объекты на основе значений из метода экземпляра?
Я пытаюсь найти способ заказать списки по их среднему рейтингу.
У меня есть ассоциация has_many/belongs_to между списком и рейтингом. Списки has_many Ratings, каждый список может иметь несколько оценок. Я тогда метод экземпляра, который вычисляет средний рейтинг список по:
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" = ?
Я думал сделать AVERAGE_RATING атрибут на модели списка, но с трудом, даже разработав метод возможности для этого. Если бы вы могли предложить какие-либо советы или помощь, я бы очень признателен!
благодарит за вашу помощь! Я собираюсь добавить атрибут, как вы предложили. – Dog