Thiết lập bằng một ví dụ đơn giản: Tôi có 1 bảng ( Totals
) chứa tổng amount
cộ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.amount
trong before_update
và cộng self.amount
trong 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_update
gọ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_update
gọi lại, bạn vẫn có quyền truy cập vào các self.attr_was
giá trị chính xác là những gì tôi muốn. Tôi cũng quyết định after_update
thự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.