Einrichtung anhand eines einfachen Beispiels: Ich habe 1 Tabelle ( Totals
), die die Summe der amount
Spalten jedes Datensatzes in einer zweiten Tabelle ( Things
) enthält.
Wenn a thing.amount
aktualisiert wird, möchte ich einfach die Differenz zwischen dem alten und dem neuen Wert hinzufügen total.sum
.
Im Moment subtrahiere ich self.amount
während before_update
und addiere self.amount
während after_update
. Dies setzt viel zu viel Vertrauen in das erfolgreiche Update.
Einschränkung: Ich möchte nicht einfach die Summe aller Transaktionen neu berechnen.
Frage: Ganz einfach, ich möchte während eines after_update
Rückrufs auf den ursprünglichen Wert zugreifen . Wie haben Sie sich das ausgedacht?
Update: Ich gehe mit Luke Francls Idee. Während eines after_update
Rückrufs haben Sie immer noch Zugriff auf die self.attr_was
Werte, genau das, was ich wollte. Ich habe mich auch für eine after_update
Implementierung entschieden, weil ich diese Art von Logik im Modell behalten möchte. Unabhängig davon, wie ich mich entscheide, Transaktionen in Zukunft zu aktualisieren, weiß ich auf diese Weise, dass ich die Summe der Transaktionen korrekt aktualisiere. Vielen Dank an alle für Ihre Implementierungsvorschläge.