我正在構建一個應用程序,用戶可以在其中提交一個URL,並且我想知道在網站上總共提交了多少個特定URL,然後安排它們在按提交次數排序的列表中。通過Rails中的重複條目數量排序
任何想法?使用Rails 3.0.6
我正在構建一個應用程序,用戶可以在其中提交一個URL,並且我想知道在網站上總共提交了多少個特定URL,然後安排它們在按提交次數排序的列表中。通過Rails中的重複條目數量排序
任何想法?使用Rails 3.0.6
如果你允許重複的URL,並假設你有一個Url
類與url
列
Url.group(:url).select("urls.*,count(*) as num").order("num desc")
如果你有獨特的網址和網址和用戶之間的連接表(這是你應該是什麼做):
Url.joins(:users).group("urls.id").select("urls.*, count(*) as num").order("num desc")
如果我理解的很好,你想跟蹤用戶通過表單提交的所有鏈接。
您可以使用帶有兩列的「url」(帶有索引和唯一性約束)和「count」(帶有索引)的submitted_urls表。
提交新鏈接時,請讓您的控制器檢查表中是否存在網址;如果沒有,創建它,否則增加與這個URL關聯的計數器。
列出您的鏈接現在就像查詢此表的順序('count DESC')子句一樣簡單,並且計算鏈接總數只是count()的問題。
如果我沒有很好地理解,這意味着您想爲您的網站實施某種分析儀表板;那爲什麼不用google analytics呢?
謝謝 - 使用略有不同的語法,但淨結果的作品。 – wastedhours
我不認爲這個解決方案將與PostgreSQL(或任何具有嚴格SQL的數據庫)一起工作。生成的SQL將在select子句中具有不在group_by子句或聚合函數中的值。 – dkam
@dkam - 你試過了嗎? – klochner