我知道在Rails中你可以调用model.update_attribute :foo, 'bar'
并且它将仅更新数据库中的那个属性而不验证模型的其余部分。这会导致一个SQL事务。
您还可以使用.update_attributes
设置多个属性,但这不能跳过验证。
或者,您可以调用.save( :validate=>false )
并更新模型而无需验证。但是,这会将模型上的所有属性保存为当前状态,而不是将其限制为某些列。
我的问题是,在单个SQL事务中,有没有办法在模型上设置多个值,但不能在不触发验证的情况下设置所有值?
答案 0 :(得分:8)
为什么不设置属性,然后使用save
调用:validate => false
?
@record.attributes = your_hash # won't nil non-mentioned attributes, as you expect it to
@record.save :validate => false