นี่คือวิธีที่ฉันแก้ไขปัญหาการตรวจสอบการเปลี่ยนแปลงในหลายคุณลักษณะ
attrs = ["street1", "street2", "city", "state", "zipcode"]
if (@user.changed & attrs).any?
then do something....
end
changed
วิธีการส่งกลับอาร์เรย์ของคุณลักษณะที่มีการเปลี่ยนแปลงสำหรับวัตถุที่
ทั้งสอง@user.changed
และattrs
เป็นอาร์เรย์ดังนั้นฉันจะได้จุดตัด (ดูary & other ary
วิธีการ) ผลลัพธ์ของการแยกเป็นอาร์เรย์ โดยการโทรany?
อาร์เรย์ฉันจะได้รับจริงถ้ามีสี่แยกอย่างน้อยหนึ่ง
นอกจากนี้ยังมีประโยชน์มากchanged_attributes
เมธอดส่งคืนแฮชของแอททริบิวด้วยค่าดั้งเดิมและchanges
แฮชของแอททริบิวด้วยค่าดั้งเดิมและค่าใหม่ (ในอาร์เรย์)
คุณสามารถตรวจสอบ APIDock ว่าเวอร์ชันใดรองรับวิธีการเหล่านี้
http://apidock.com/rails/ActiveModel/Dirty