Суммирование и группировка записей в приложении Rails 3 - PullRequest
0 голосов
/ 15 декабря 2011

Я использую это в представлении:

 <% @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 и :ount. Я могу сгруппировать их по месяцам и годам с помощью приведенного выше кода, пытаясь также суммировать количество по месяцам. Не могу понять это. Получение следующей ошибки:

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

1 Ответ

2 голосов
/ 15 декабря 2011

Вы, кажется, вызываете строки, как если бы это был метод, тогда как на самом деле это массив объектов.Попробуйте сделать это следующим образом:

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

Карта создаст новый массив, вызвав quantity для каждой записи в массиве.Тогда вы можете суммировать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...