按Rails中的重复条目数排序

时间:2011-09-19 15:28:13

标签: ruby-on-rails ruby-on-rails-3 activerecord

我正在构建一个用户可以提交网址的应用,我想知道网站上已经提交了多少特定网址,然后将它们安排在按次数排序的列表中他们已被提交。

有什么想法吗?使用Rails 3.0.6

2 个答案:

答案 0 :(得分:0)

如果我理解得很好,您希望跟踪用户通过表单提交的所有链接。

您可以使用带有两列的submitted_urls表:“url”(带索引和unicity约束)和“count”(带索引)。

提交新链接时,请让您的控制器检查表中是否存在该URL;如果没有,创建它,否则增加与此URL关联的计数器。

列出您的链接现在就像使用订单('count DESC')子句查询此表一样简单,计算链接总数只需要count()。

如果我不太了解,这意味着您要为您的网站实施某种分析仪表板;为什么不使用google analytics呢?

答案 1 :(得分:0)

如果您允许重复的网址,并假设您有一个Urlurl

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")