Каков наилучший способ - или, действительно, любой способ - для вычисления промежуточного итога в Rails?
У меня есть модель, продажа.Он имеет столбец количества и столбец sales_value.Мне нужно заполнить третий столбец total_quantity суммой значений количества предыдущих записей, когда таблица отсортирована по isbn_id, затем channel_id, затем invoice_date.Это устанавливает все виды разумных сигналов тревоги управления базой данных, поэтому я задаюсь вопросом, возможно ли это вообще.
Причиной необходимости этой накопленной суммы является применение процента к продажам, когда накопленное количество находится в определенном диапазоне.Я не могу использовать среднюю стоимость продаж во всех записях, потому что маржа от продаж может значительно меняться со временем - поэтому я бы применил среднее значение к группе продаж, которая может превышать или недоплачивать получателю роялти.
Итак.Должен ли я сделать обратный вызов before_save для модели Sale и update_attribute, как-нибудь?Есть ли способ вернуть значение предыдущей записи, когда таблица отсортирована определенным образом?Или я должен сбросить все записи Sale в массив и, возможно, использовать команду inject для накопления промежуточного итога?
Любые идеи приветствуются, заранее спасибо.
Обновление: следующий заданный вопрос здесь .