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