Rails:更新多个属性而无需验证,1个sql事务

时间:2012-04-26 20:48:48

标签: sql ruby-on-rails activerecord

我知道在Rails中你可以调用model.update_attribute :foo, 'bar'并且它将仅更新数据库中的那个属性而不验证模型的其余部分。这会导致一个SQL事务。

您还可以使用.update_attributes设置多个属性,但这不能跳过验证。

或者,您可以调用.save( :validate=>false )并更新模型而无需验证。但是,这会将模型上的所有属性保存为当前状态,而不是将其限制为某些列。

我的问题是,在单个SQL事务中,有没有办法在模型上设置多个值,但不能在不触发验证的情况下设置所有值?

1 个答案:

答案 0 :(得分:8)

为什么不设置属性,然后使用save调用:validate => false

@record.attributes = your_hash # won't nil non-mentioned attributes, as you expect it to
@record.save :validate => false