Thiết lập bằng một ví dụ đơn giản: Tôi có 1 bảng ( Totals) chứa tổng amountcột của mỗi bản ghi trong bảng thứ hai ( Things).
Khi một thing.amountđược cập nhật, tôi chỉ muốn thêm sự khác biệt giữa giá trị cũ và giá trị mới vào total.sum.
Ngay bây giờ tôi đang trừ self.amounttrong before_updatevà cộng self.amounttrong after_update. Điều này đặt WAY quá nhiều tin tưởng vào việc cập nhật thành công.
Hạn chế: Tôi không muốn chỉ đơn giản tính toán lại tổng của tất cả các giao dịch.
Câu hỏi: Rất đơn giản, tôi muốn truy cập giá trị ban đầu trong khi after_updategọi lại. Bạn đã nghĩ ra cách nào để làm điều này?
Cập nhật: Tôi sẽ theo ý tưởng của Luke Francl. Trong khi after_updategọi lại, bạn vẫn có quyền truy cập vào các self.attr_wasgiá trị chính xác là những gì tôi muốn. Tôi cũng quyết định after_updatethực hiện vì tôi muốn giữ loại logic này trong mô hình. Bằng cách này, bất kể tôi quyết định cập nhật các giao dịch trong tương lai như thế nào, tôi sẽ biết rằng tôi đang cập nhật chính xác tổng các giao dịch. Cảm ơn tất cả mọi người cho đề xuất thực hiện của bạn.