0

我有一个应用程序,用户可以在其中发布专辑评论。我想列出网站上评论最多的前十张专辑。到目前为止,我得到了这么多:(评论被称为别针)

<%= Pin.group(:album).count.sort %>

这会给我一个结果如下的数组:

[[“Aladdin Sane”,2],[“An Awesome Wave”,2],[“Bon Iver”,1],[“无助的忧郁”,3],[“辣酱委员会第二部分”,1], [“气球屋”,1],[“詹姆斯布莱克”,1],[“Kaputt”,1],[“No Color”,2],[“Out Of The Game”,1],[“杂草丛生” ", 1], ["保罗西蒙", 1], ["人、地狱和天使", 1], ["奇异慈悲", 1], ["哈罗与丰收", 1], [" The Hunter", 1], ["The Idle Wheel", 1], ["The King of Limbs", 1], ["Up All Night", 1], ["Yoshimi Battles The Pink Robots", 2], [“讨厌”,2],[“undun”,1]]

我是否需要编写全新的方法来完成此操作,或者是否只有一些我不知道的数组方法可以完成此操作?

4

2 回答 2

0

我没有尝试过,但限制数据库返回的行似乎更好。

Pin.group(:album).limit(10).order('count(*) desc')
于 2013-09-09T18:19:48.923 回答
0

尝试这个

 Pin.group(:album).count.sort_by{|k, v| -v}.take(10)
于 2013-09-09T18:06:59.007 回答