ก่อนราง 5.1
การต่อท้าย_was
แอตทริบิวต์ของคุณจะให้ค่าก่อนหน้านี้
สำหรับราง 5.1+
คัดลอกมาจากคำตอบของ Lucas Andrade ด้านล่าง : https://stackoverflow.com/a/50973808/9359123
การต่อท้าย_was
ไม่ได้รับการสนับสนุนในราง 5.1 ตอนนี้คุณควรต่อท้าย_before_last_save
สิ่งที่ต้องการ:
before_save object
do_something_with object.name_before_last_save
end
จะคืนค่าชื่อก่อนบันทึกครั้งสุดท้ายที่ฐานข้อมูล (ใช้สำหรับบันทึกและสร้าง)
ความแตกต่างระหว่าง_was
และ_before_last_save
ตามเอกสาร:
_ เป็นแหล่งที่มาจากเอกสาร
def attribute_was(attr)
attribute_changed?(attr) ? changed_attributes[attr] : __send__(attr)
end
_before_last_saveแหล่งที่มาจากเอกสาร
def attribute_before_last_save(attr_name)
mutations_before_last_save.original_value(attr_name)
end
self.context
:self.context_was