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