Настройка с использованием простого примера: У меня есть 1 таблица (Totals
), которая содержит сумму столбца amount
каждой записи во второй таблице (Things
).
Когда обновляется thing.amount
, я хотел бы просто добавить разницу между старым значением и новым значением в total.sum
.
Сейчас я вычитаю self.amount
во время before_update
и добавляю self.amount
во время after_update
. Это приводит к тому, что WAY слишком сильно доверяет обновлению.
Ограничение: Я не хочу просто пересчитывать сумму всех транзакций.
Вопрос: Я просто хочу получить исходное значение во время обратного вызова after_update
. Какие у вас были способы сделать это?
Обновление: Я пойду с идеей Люка Франка. Во время обратного вызова after_update
у вас все еще есть доступ к значениям self.attr_was
, которые именно то, что я хотел. Я также решил пойти с реализацией after_update
, потому что хочу сохранить такую модель в модели. Таким образом, независимо от того, как я решил обновить транзакции в будущем, я буду знать, что я правильно обновляю сумму транзакций. Спасибо всем за ваши рекомендации по внедрению.