11
Rails: update_attribute เทียบกับ update_attributes
Object.update_attribute(:only_one_field, "Some Value") Object.update_attributes(:field1 => "value", :field2 => "value2", :field3 => "value3") ทั้งสองอย่างนี้จะอัปเดตวัตถุโดยไม่ต้องแจ้งให้ AR ทราบเพื่ออัปเดตอย่างชัดเจน Rails API พูดว่า: สำหรับ update_attribute อัพเดตแอททริบิวต์เดียวและบันทึกข้อมูลโดยไม่ต้องผ่านขั้นตอนการตรวจสอบความถูกต้องตามปกติ สิ่งนี้มีประโยชน์อย่างยิ่งสำหรับแฟล็กบูลีนในระเบียนที่มีอยู่ เมธอด update_attribute ปกติในฐานจะถูกแทนที่ด้วยสิ่งนี้เมื่อโมดูลการตรวจสอบความถูกต้องถูกผสมซึ่งเป็นค่าเริ่มต้น สำหรับ update_attributes อัปเดตคุณลักษณะทั้งหมดจาก Hash ที่ส่งผ่านและบันทึกบันทึก หากวัตถุไม่ถูกต้องการบันทึกจะล้มเหลวและจะส่งคืนค่าเท็จ ดังนั้นหากฉันไม่ต้องการให้วัตถุตรวจสอบความถูกต้องฉันควรใช้ update_attribute จะเกิดอะไรขึ้นถ้าฉันมีการอัปเดตนี้ก่อนวันที่บันทึกมันจะสแต็คโอเวอร์โฟลว์หรือไม่ คำถามของฉันคือ update_attribute ยังข้ามก่อนบันทึกหรือเพียงแค่การตรวจสอบ นอกจากนี้ไวยากรณ์ที่ถูกต้องคืออะไรที่จะผ่านแฮชเพื่อ update_attributes ... ลองดูตัวอย่างของฉันที่ด้านบน