Rails列出每个记录和计数

时间:2013-04-15 13:23:25

标签: ruby-on-rails-3 activerecord rails-activerecord

我有一个名为Note的模型。每个音符belongs_to:call_reason。并且call_reason has_many:notes。

我想在视图中执行的操作是显示call_reasons列表以及每个旁边的总计数,以便我们查看最常用的通话原因。

这是我到目前为止所拥有的:

dashboard_controller:

  def index
    @notes = Note.all
  end

仪表板视图:

<% @notes.each do |n| %>
   <%= n.call_reason.reason %>
<% end %>

这会列出所有笔记'call_reasons。

我绊倒了如何列出每个call_reason一次,旁边有一个总计数。我现在只列出每个音符的所有call_reasons,这是一个烂摊子。我想我可以以某种方式解决这个问题,或者更改实例变量,但我很难做到正确。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

由于你想列出通话原因,你应该从那开始:

def index
  @call_reasons = CallReason.all
end

然后在您的视图中,您可以执行此操作:

<% @call_reasons.each do |call_reason| %>
  <%= call_reason.reason %> <%= call_reason.notes.count %>
<% end %>

请注意,这将对数据库中的每个调用原因执行查询。为防止这种情况,您可以使用counter cache。请查看有关Rails指南的counter cache部分。