Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Dapatkan 5 Lagu Teratas Paling Didengar Menggunakan Rails 3 ActiveRecord?

Bagaimana untuk Dapatkan 5 Lagu Teratas Paling Didengar Menggunakan Rails 3 ActiveRecord?

Patricia Arquette
Patricia Arquetteasal
2024-12-03 17:55:10520semak imbas

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

Dapatkan Lagu Teratas Berdasarkan Kiraan Dengar dalam Rails 3 ActiveRecord

Anda sedang mencari kaedah untuk mendapatkan semula 5 lagu teratas yang telah paling banyak mendengar. ActiveRecord, dalam Rails 3.1, menyediakan cara yang berkesan untuk menyelesaikan tugas ini.

Untuk bermula, pertimbangkan model Lagu, yang mempunyai hubungan dengan model Listen. Setiap Dengar berkaitan dengan Lagu tertentu, manakala setiap Lagu boleh mempunyai banyak Dengar (menunjukkan ia telah didengar beberapa kali).

Dalam model Lagu, anda boleh menentukan kaedah self.top untuk mengambil 5 teratas lagu yang paling banyak didengari. Ini boleh dicapai dengan menggunakan perkaitan 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

Kod ini mentakrifkan skop bernama top5 dalam kelas Lagu. Ia memanfaatkan SQL untuk membina pertanyaan yang dikehendaki:

  1. pilih: Memilih lajur tertentu daripada jadual lagu, termasuk lajur tambahan bernama listens_count yang mengira bilangan pendengaran untuk setiap lagu.
  2. bergabung: Mewujudkan gabungan antara lagu dan mendengar jadual menggunakan perkaitan has_many.
  3. kumpulan: Kumpulan keputusan oleh songs.id untuk memastikan kiraan dilakukan untuk setiap lagu unik.
  4. urutan: Susun keputusan dalam susunan menurun berdasarkan lajur listens_count.
  5. had: Hadkan keputusan kepada 5 teratas lagu dengan bilangan pendengaran tertinggi.

Dengan menggunakan Song.top5, anda boleh mendapatkan susunan 5 lagu teratas, dengan setiap atribut lagu termasuk bilangan kali ia telah didengari. Ini membolehkan pengecaman mudah lagu paling popular dalam aplikasi anda.

Atas ialah kandungan terperinci Bagaimana untuk Dapatkan 5 Lagu Teratas Paling Didengar Menggunakan Rails 3 ActiveRecord?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn