我有一张桌子KmRelationship,它关联关键词和电影
在关键字索引中,我想列出KmRelationships表中最常出现的所有关键字,并且只列出(20)
.order
似乎无论我如何使用它,我把它放在哪里都适用sort_by
这听起来相对简单,但我似乎无法让它发挥作用
有什么想法吗?
答案 0 :(得分:2)
假设您的KmRelationship
表格有keyword_id
:
top_keywords = KmRelationship.select('keyword_id, count(keyword_id) as frequency').
order('frequency desc').
group('keyword_id').
take(20)
这可能在您的控制台输出中看起来不正确,但这是因为rails没有为计算出的frequency
列构建对象属性。
您可以看到如下结果:
top_keywords.each {|k| puts "#{k.keyword_id} : #{k.freqency}" }
为了充分利用它,您可以绘制出实际的关键字对象:
class Keyword < ActiveRecord::Base
# other stuff
def self.most_popular
KmRelationship.
select('keyword_id, count(keyword_id) as frequency').
order('frequency desc').
group('keyword_id').
take(20).
map(&:keyword)
end
end
并致电:
Keyword.most_popular
答案 1 :(得分:0)
@posts = Post.select([:id,:title])。order(“created_at desc”)。limit(6)
我在我的控制器索引方法中列出了这个,它允许命令显示最后一个限制为6的帖子。它可能类似于你想要做的事情。此代码实际上反映了我主页上的最新帖子。