집 >데이터 베이스 >MySQL 튜토리얼 >Ruby on Rails에서 ActiveRecord를 사용하여 가장 많이 듣는 상위 5개 노래를 효율적으로 검색하려면 어떻게 해야 합니까?
ActiveRecord를 사용하여 가장 많이 듣는 노래를 효율적으로 검색
Ruby on Rails에서 관련 모델 수를 기반으로 가장 인기 있는 레코드를 검색하는 것은 일반적인 작업. 이 경우 각 Listen이 하나의 Song에 속하고 각 Song이 여러 Listen을 가질 수 있는 Song 모델과 Listen 모델이 있습니다. 가장 많이 듣는 상위 5개 노래를 결정하려면 효율적인 방식으로 연관 정보에 액세스해야 합니다.
명명된 범위 사용
ActiveRecord의 명명된 범위는 강력한 복잡한 쿼리를 캡슐화하는 방법. 이를 통해 쉽게 호출할 수 있는 재사용 가능한 쿼리 기준을 만들 수 있습니다. 주어진 시나리오의 경우 Song 모델 내에서 :top5라는 명명된 범위를 정의할 수 있습니다.
class Song has_many :listens scope :top5, select("songs.id, OTHER_ATTRS_YOU_NEED, count(listens.id) AS listens_count"). joins(:listens). group("songs.id"). order("listens_count DESC"). limit(5) # Retrieve the top 5 most listened-to songs songs = Song.top5
Query Breakdown
:top5 명명된 범위를 호출하여 다음을 수행할 수 있습니다. 관련 청취 횟수와 함께 상위 5개 노래 컬렉션을 얻어 필요한 항목을 추출하는 간결하고 효율적인 방법을 제공합니다. 데이터.
위 내용은 Ruby on Rails에서 ActiveRecord를 사용하여 가장 많이 듣는 상위 5개 노래를 효율적으로 검색하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!