У меня есть две модели, которые связаны.У меня есть модель Artist и модель Review.
class Artist
include DataMapper::Resource
property :id, Serial
property :name, String
has n, :reviews
end
class Review
include DataMapper::Resource
property :id, Serial
property :rating, Integer
property :body, String
belongs_to :artist
end
Моя цель - получить массив художников, упорядоченных по среднему рейтингу отзывов, связанных с ними. Я не являюсьКонечно, есть ли однострочное решение, но мой текущий метод - создать массив с идентификаторами артистов, отсортированными по среднему рейтингу.Детали того, как я получаю этот массив, не важны для этого вопроса, но допустим, у меня теперь есть массив.
ids_sorted_by_rating = [4,5,23,9,2,48,17,....]
Затем я получаю художников.
artists = Artist.all(:id => ids_sorted_by_rating)
Проблема в том,этот datamapper упорядочивает по: id, если вы не укажете другую опцию.Так что после всей моей тяжелой работы, чтобы получить ids_sorted_by_rating, я все еще остаюсь со списком артистов, просто отсортированным по: id.
Любое решение, которое дает мне список художников, упорядоченных по среднему рейтингу соответствующих обзоров, будет НАМНОГО оценено.Бонусные баллы, если мне не нужно попадать в базу данных миллион раз, чтобы получить этот список.:)
Спасибо, и если вам нужна дополнительная информация, просто спросите, и я предоставлю!