相关疑难解决方法(0)

Rails:update_attribute vs update_attributes

Object.update_attribute(:only_one_field, "Some Value")
Object.update_attributes(:field1 => "value", :field2 => "value2", :field3 => "value3")
Run Code Online (Sandbox Code Playgroud)

这两个都将更新对象,而不必明确告知AR更新.

Rails API说:

for update_attribute

更新单个属性并保存记录,而无需通过正常的验证过程.这对现有记录上的布尔标志特别有用.混合验证模块时,Base中的常规update_attribute方法将替换为此默认值.

for update_attributes

更新传入的Hash中的所有属性并保存记录.如果对象无效,则保存将失败并返回false.

因此,如果我不想验证对象,我应该使用update_attribute.如果我在before_save上有这个更新怎么办,它会堆栈溢出吗?

我的问题是update_attribute是否也绕过了之前的保存或只是验证.

另外,将散列传递给update_attributes的正确语法是什么...查看我顶部的示例.

ruby-on-rails callback update-attributes

250
推荐指数
8
解决办法
27万
查看次数