두 모델이 연관되어 있습니다. Artist 모델과 Review 모델이 있습니다.datamapper를 사용하여 결과 순서 지정
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
내 목표는 그와 관련된 리뷰의 평균 평가에 의해 주문 예술가의 배열을 검색하는 것입니다. 나는 이것에 대한 한 가지 해결책이 있는지 확실하지 않지만 현재의 방법은 평균 등급으로 분류 된 아티스트의 ID로 배열을 만드는 것입니다. 이 배열을 얻는 방법에 대한 세부 사항은이 질문에 중요하지 않지만 배열이 있다고 가정 해 봅시다.
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.
관련 리뷰의 평균 평점에 따라 아티스트의 목록을 제공하는 솔루션은 크게 감사 할 것입니다. 보너스는 내가 그 목록을 얻기 위해 백만 번 데이터베이스를 칠 필요가 없다면 가리킨다. :)
감사합니다. 추가 정보가 필요하면 알려주세요.
나는 너를 잊지 않았다. 나는 이것을 시험해 볼 기회가 없었습니다. – wuliwong
고마워, 나는이 질문을 해결하기 위해 쓰고있는 문제와 다른 방향으로 나아 갔다.하지만 나는 똑같은 문제를 새로운 곳에서 생각해 냈다. 내가해야 할 일은 datamapper': through => Resource'를 말하는 대신 사용자 지정 연결을 만드는 것입니다. – wuliwong