Просмотр помощника для суммирования позиций - PullRequest
0 голосов
/ 20 февраля 2012

У меня есть помощник вида, который суммирует позиции внутри позиций. Каждый заказ может иметь много позиций. Каждая позиция имеет разные размеры внутри (поля). Для этого ниже мне интересно, как суммировать определенное поле для нескольких позиций.

 def total_items(order)
        xxs = order.lineitems.xxs.sum
       return xxs
 end

Это то, что у меня есть, но не работает, когда в заказе несколько позиций, как мне правильно написать это?

1 Ответ

1 голос
/ 20 февраля 2012

Не очень очевидно, что вы спрашиваете, но я думаю, что вы хотите, что-то вроде этого:

 def total_items(order)
    order.lineitems.inject(0) { |total, line_item| total + line_item.xxs }
 end

То, что делает этот метод, похоже на это:

 def total_items(order)
    total = 0;
    order.lineitems.each do |line_item|
        total += line_item.xxs
    end
    total
 end

Кстати, в Ruby ключевое слово return необязательно.

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