使用ActiveRecord 高效檢索最常聽的歌曲
在Ruby on Rails 中,根據關聯模型計數檢索最受歡迎的記錄是一個簡單的方法共同任務。在這個例子中,我們有一個 Song 模型和一個 Listen 模型,其中每個 Listen 都屬於一首 Song,而每個 Song 可以有多個 Listen。為了確定最常聽的五首歌曲,我們需要以有效的方式存取關聯資訊。
使用命名範圍
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
查詢細分
透過呼叫:top5 命名範圍,我們可以獲得排名前五的歌曲以及相關收聽次數的集合,提供一種簡潔有效的方法來提取所需的數據。
以上是如何在 Ruby on Rails 中使用 ActiveRecord 高效檢索最常聽的 5 首歌曲?的詳細內容。更多資訊請關注PHP中文網其他相關文章!