Object.update_attribute(:only_one_field, "Some Value") Object.update_attributes(:field1 => "value", :field2 => "value2", :field3 => "value3") 这两个都将更新一个对象,而不必明确告诉AR更新。 Rails API说: 为update_attribute 更新单个属性并保存logging,而不需要经过正常的validation过程。 这对于现有logging上的布尔标志特别有用。 Base中的常规update_attribute方法在validation模块混入时replace为默认值。 为update_attributes 从传入的哈希中更新所有的属性并保存logging。 如果对象无效,则保存将失败,并返回false。 所以如果我不想validation对象,我应该使用update_attribute。 如果我在before_save上有这个更新,会怎样呢? 我的问题是,update_attribute也绕过之前保存或只是validation。 此外,什么是正确的语法传递给update_attributes散列…检查我的例子在顶部。