Object.update_attribute(:only_one_field, "Some Value")
Object.update_attributes(:field1 => "value", :field2 => "value2", :field3 => "value3")
两者都将更新对象,而无需显式通知AR更新。
Rails API说:
用于update_attribute
更新单个属性并保存记录,而无需执行正常的验证过程。这对于现有记录上的布尔标志特别有用。混入验证模块时,Base中的常规update_attribute方法将替换为该方法,默认情况下为该方法。
用于update_attributes
从传入的哈希中更新所有属性并保存记录。如果对象无效,则保存将失败并返回false。
因此,如果我不想验证对象,则应使用update_attribute。如果我在before_save上进行了更新,将会导致stackoverflow吗?
我的问题是update_attribute是否也绕过了之前的保存或只是验证。
另外,将哈希传递给update_attributes的正确语法是什么...在顶部查看我的示例。
叮当猫咪
繁华开满天机
相关分类