循环中唯一记录的总和

时间:2018-11-01 16:02:00

标签: ruby-on-rails loops

我有一个包含列队和数量的LineItem模型。我正在尝试运行循环以获取团队“ x”的总数。

<table>
    <thead>
      <tr>
        <th>Team</th>
        <th>Quantity</th>
      </tr>
    </thead>
    <tbody>
      <% for line_item in @order.line_items %>
        <tr>
          <td><%= line_item.team %></td>
          <td><%= line_item.quantity %></td>
        </tr>
      <% end %>
    </tbody>
  </table> 

这是桌子的漂亮图片。基本上,我希望所有名为“ USC”的团队加起来,而不是每一个都看到一行。任何帮助,将不胜感激。 enter image description here

2 个答案:

答案 0 :(得分:2)

在您的控制器中:

@line_items = @order.line_items.group(:team).sum(:quantity)

您认为:

<% @line_items.each do |team, quantity| %>
  <tr>
    <td><%= team %></td>
    <td><%= quantity %></td>
  </tr>
<% end %>

答案 1 :(得分:0)

<% line_items = @order.line_items.select('team, sum(quantity) as total_quantity').group('team') %>
<% line_items.each do |line_item| %>
  <tr>
    <td><%= line_item.team %></td>
    <td><%= line_item.total_quantity %></td>
  </tr>
<% end %>