Trước khi rails 5.1
Thêm _was
vào thuộc tính của bạn sẽ cung cấp cho bạn giá trị trước đó.
Đối với đường ray 5.1+
Được sao chép từ câu trả lời của Lucas Andrade bên dưới : https://stackoverflow.com/a/50973808/9359123
Việc bổ sung _was
không được chấp nhận trong rails 5.1, bây giờ bạn nên nối thêm_before_last_save
Cái gì đó như:
before_save object
do_something_with object.name_before_last_save
end
Sẽ trả về giá trị tên trước lần lưu cuối cùng của bạn tại cơ sở dữ liệu (hoạt động để lưu và tạo)
Sự khác biệt giữa _was
và _before_last_save
theo tài liệu:
_là nguồn từ tài liệu
def attribute_was(attr)
attribute_changed?(attr) ? changed_attributes[attr] : __send__(attr)
end
_before_last_save nguồn từ tài liệu
def attribute_before_last_save(attr_name)
mutations_before_last_save.original_value(attr_name)
end
self.context
:self.context_was