> 데이터 베이스 > MySQL 튜토리얼 > Rails 3 ActiveRecord를 사용하여 가장 많이 듣는 상위 5개 노래를 검색하는 방법은 무엇입니까?

Rails 3 ActiveRecord를 사용하여 가장 많이 듣는 상위 5개 노래를 검색하는 방법은 무엇입니까?

Patricia Arquette
풀어 주다: 2024-12-03 17:55:10
원래의
466명이 탐색했습니다.

How to Retrieve the Top 5 Most-Listened-To Songs Using Rails 3 ActiveRecord?

Rails 3 ActiveRecord의 청취 횟수를 기준으로 상위 노래 검색

귀하는 상위 5개 노래를 검색하는 방법을 찾고 있습니다. 가장 많이 들었습니다. Rails 3.1의 ActiveRecord는 이 작업을 수행하는 강력한 방법을 제공합니다.

시작하려면 Listen 모델과 관계가 있는 Song 모델을 고려하세요. 각 듣기는 특정 노래와 관련이 있지만 각 노래에는 수많은 듣기가 있을 수 있습니다(여러 번 청취했음을 나타냄).

노래 모델 내에서 상위 5개를 가져오는 self.top 메소드를 정의할 수 있습니다. 가장 많이 듣는 노래. 이는 has_many 연관을 활용하여 달성할 수 있습니다.

class Song
  has_many :listens

  def self.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)
  end
end
로그인 후 복사

이 코드는 Song 클래스 내에서 top5라는 명명된 범위를 정의합니다. SQL을 활용하여 원하는 쿼리를 구성합니다.

  1. select: 각 노래의 청취 횟수를 계산하는 listenings_count라는 추가 열을 포함하여 노래 테이블에서 특정 열을 선택합니다.
  2. 조인: 노래 간의 조인을 설정하고 has_many 연결을 사용하여 테이블을 수신합니다.
  3. 그룹: 결과를 songs.id별로 그룹화합니다. 각각의 고유한 노래에 대해 계산이 수행되도록 합니다.
  4. order: listenings_count 열을 기준으로 내림차순으로 결과를 정렬합니다.
  5. limit: 결과가 가장 높은 상위 5개 노래로 제한됩니다. 청취 횟수.

Song.top5를 호출하면 각 노래의 이름과 함께 상위 5개 노래의 배열을 검색할 수 있습니다. 청취 횟수를 포함한 속성입니다. 이를 통해 애플리케이션 내에서 가장 인기 있는 노래를 쉽게 식별할 수 있습니다.

위 내용은 Rails 3 ActiveRecord를 사용하여 가장 많이 듣는 상위 5개 노래를 검색하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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