> 데이터 베이스 > MySQL 튜토리얼 > Ruby on Rails에서 ActiveRecord를 사용하여 가장 많이 듣는 상위 5개 노래를 효율적으로 검색하려면 어떻게 해야 합니까?

Ruby on Rails에서 ActiveRecord를 사용하여 가장 많이 듣는 상위 5개 노래를 효율적으로 검색하려면 어떻게 해야 합니까?

Barbara Streisand
풀어 주다: 2024-11-27 01:42:09
원래의
408명이 탐색했습니다.

How Can I Efficiently Retrieve the Top 5 Most Listened-To Songs Using ActiveRecord in Ruby on Rails?

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

  • select는 result.
  • joins는 Song 및 Listen 모델 간의 조인 조건을 설정합니다.
  • group 결과를 ​​Song ID별로 그룹화하여 개수를 계산합니다. 각 노래를 들어봅니다.
  • order 결과를 ​​기준으로 내림차순으로 정렬합니다. 청취 횟수.
  • limit는 결과를 상위 5개 노래로 제한합니다.

:top5 명명된 범위를 호출하여 다음을 수행할 수 있습니다. 관련 청취 횟수와 함께 상위 5개 노래 컬렉션을 얻어 필요한 항목을 추출하는 간결하고 효율적인 방법을 제공합니다. 데이터.

위 내용은 Ruby on Rails에서 ActiveRecord를 사용하여 가장 많이 듣는 상위 5개 노래를 효율적으로 검색하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿