obj.update_attribute(:only_one_field, 'Some Value')
obj.update_attributes(field1: 'value', field2: 'value2', field3: 'value3')
这两个都将更新一个对象,而无需明确告诉 ActiveRecord 进行更新。
Rails API 说:
更新属性
更新单个属性并保存记录,而无需经过正常的验证过程。这对于现有记录上的布尔标志特别有用。当混入验证模块时,Base 中的常规 update_attribute 方法被替换为 this,默认情况下。
更新属性
从传入的 Hash 中更新所有属性并保存记录。如果对象无效,则保存失败,返回false。
因此,如果我不想验证对象,我应该使用#update_attribute
. 如果我在 a 上有此更新怎么办#before_save
,它会 stackoverflow 吗?
我的问题是#update_attribute
也绕过了之前的保存或只是验证。
另外,将散列传递给的正确语法是什么#update_attributes
...查看顶部的示例。