我正在构建一个用户可以提交网址的应用,我想知道网站上已经提交了多少特定网址,然后将它们安排在按次数排序的列表中他们已被提交。
有什么想法吗?使用Rails 3.0.6
答案 0 :(得分:0)
如果我理解得很好,您希望跟踪用户通过表单提交的所有链接。
您可以使用带有两列的submitted_urls表:“url”(带索引和unicity约束)和“count”(带索引)。
提交新链接时,请让您的控制器检查表中是否存在该URL;如果没有,创建它,否则增加与此URL关联的计数器。
列出您的链接现在就像使用订单('count DESC')子句查询此表一样简单,计算链接总数只需要count()。
如果我不太了解,这意味着您要为您的网站实施某种分析仪表板;为什么不使用google analytics呢?
答案 1 :(得分:0)
如果您允许重复的网址,并假设您有一个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")