【发布时间】:2014-05-29 14:28:44
【问题描述】:
我将以下类别归为一组:
@categories = Category.all.group_by { |c| c.name }
在我看来,我正在显示这样的类别名称:
<% @categories.each do |c, v| %>
<li><%= link_to c, blog_path(:name => c) %></li>
<% end %>
举个例子:
Ruby
Ruby On Rails
CSS
我想要实现的是每个类别名称旁边都有具有该类别名称的帖子总数,所以:
Ruby(2)
Ruby On Rails(10)
所以我试过了:
@categories = Category.joins(:posts).all.group_by { |c| c.name }
这导致仅显示带有帖子对象的类别(以前所有类别都会显示,无论它们是否有帖子对象),在我看来,我尝试过:
<% @categories.each do |c, v| %>
<li><%= link_to c, blog_path(:name => c) %><%= c.count %></li>
<% end %>
这没有输出。在混淆这件事之前,我想知道如何解决这个问题。
【问题讨论】:
-
试试
.includes而不是.joins- 有什么不同吗? -
.includes 现在再次显示所有类别,但计数仍然没有输出
-
你为什么要按名字分组?
-
@MikeCampbell 我还能按什么分组?我想列出所有类别名称,以便用户可以单击一个,然后查看属于该类别的所有帖子
-
为什么会有多个同名的分类?
标签: ruby-on-rails ruby count group-by