Configuración usando un ejemplo simple: tengo 1 tabla ( Totals) que contiene la suma de la amountcolumna de cada registro en una segunda tabla ( Things).
Cuando thing.amountse actualiza, me gustaría simplemente agregar la diferencia entre el valor anterior y el nuevo valor a total.sum.
Ahora mismo estoy restando self.amountdurante before_updatey sumando self.amountdurante after_update. Esto deposita demasiada confianza en que la actualización se realice correctamente.
Restricción: no quiero simplemente volver a calcular la suma de todas las transacciones.
Pregunta: Simplemente, me gustaría acceder al valor original durante una after_updatedevolución de llamada. ¿Qué formas se te han ocurrido para hacer esto?
Actualización: voy con la idea de Luke Francl. Durante una after_updatedevolución de llamada, todavía tiene acceso a los self.attr_wasvalores, que es exactamente lo que quería. También decidí ir con una after_updateimplementación porque quiero mantener este tipo de lógica en el modelo. De esta manera, no importa cómo decida actualizar las transacciones en el futuro, sabré que estoy actualizando la suma de las transacciones correctamente. Gracias a todos por sus sugerencias de implementación.