在Rails 3应用程序中对记录进行总计和分组

时间:2011-12-15 02:29:11

标签: ruby-on-rails-3

我在视图中使用它:

 <% @line_items.group_by(&:year).each do |year, line_items| %>
    <h2><%= year %></h2>
        <% line_items.group_by(&:month).each do |month, lines| %>
            <h3><%= Date.new(year.to_i, month.to_i, 1).strftime('%B') %> // <%= lines(&:quantity).sum %></h3>

            <% for line in lines %>
                <p><%= line.quantity %> <%= line.customer.name %></p>
            <% end %>
        <% end %>
    <% end %>

我有一组包含:month,:year和:quantity属性的订单项。我可以按月和上面的代码对它们进行分组,我也试图按月计算总量。似乎无法弄明白。得到以下错误:

undefined method `lines' for #<#<Class:0x007fabb4f8afe0>:0x007fabb4f806d0>

1 个答案:

答案 0 :(得分:2)

你似乎在调用行,就好像它是一个方法,实际上它是一个对象数组。尝试这样做:

<%= lines.map(&:quantity).sum %>

Map将通过在数组中的每条记录上调用quantity来创建一个新数组。然后你可以总算一下。