我正在使用acts_as_commentable_with_threading gem让用户能够评论我的博文。
我现在要做的是显示大多数评论的帖子,但我不知道如何查询它们(据我所知,gem没有提供这样的方法)。你能给我一些如何实现这样的提示或想法吗?
答案 0 :(得分:5)
这是一种方法,用于返回发布最多项目的热门用户。它可以帮助您解决问题。我将它放在Application Helper中,因为它是我的侧面导航栏的一部分,将在Web应用程序的每个页面上使用。
def top_posters
User.all(:select => "users.*, COUNT(user_id) as post_count",
:joins => "LEFT JOIN posts AS posts ON posts.user_id = users.id",
:group => "posts.user_id",
:order => "post_count DESC",
:limit => 5)
end
在我看来,我有
<% top = top_posters() %>
<% for t in top %>
<li><%= link_to t.username, user_path(t) %>
(<%= t.posts.public_posts.count %>)</li>
<% end %>
答案 1 :(得分:2)
对于Rails 4 +
你应该使用这样的东西:
Article.select("articles.*, COUNT(commentable_id) as comments_count")
.joins("LEFT JOIN comments AS comments ON comments.commentable_id = articles.id")
.group("comments.commentable_id")
.order("comments_count DESC")
.where("commentable_type = 'Article'")
.limit(5)