간단한 예제를 사용하여 설정 : 두 번째 테이블 ( ) 에 각 레코드 Totals
의 amount
열 합계를 보유하는 테이블 ( ) 이 1 개 Things
있습니다.
thing.amount
가 업데이트 되면 이전 값과 새 값의 차이를에 추가하고 싶습니다 total.sum
.
지금은 뺀거야 self.amount
동안 before_update
및 추가 self.amount
시 after_update
. 이로 인해 업데이트 성공에 대해 너무 많은 신뢰가 있습니다.
제약 : 모든 거래의 합계를 단순히 재 계산하고 싶지 않습니다.
질문 : 간단히 말해서 after_update
콜백 중에 원래 값에 액세스하고 싶습니다 . 이 작업을 수행하는 방법은 무엇입니까?
업데이트 : 나는 Luke Francl의 아이디어로 갈 것입니다. after_update
콜백 중에 self.attr_was
내가 원하는 값에 여전히 액세스 할 수 있습니다 . 나는 또한 after_update
이런 종류의 논리를 모델에 유지하고 싶기 때문에 구현을하기 로 결정했습니다 . 이렇게하면 나중에 트랜잭션을 어떻게 업데이트할지 결정하더라도 트랜잭션 합계를 올바르게 업데이트하고 있음을 알 수 있습니다. 구현 제안을 해주신 모든 분들께 감사드립니다.