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:
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!