2

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

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

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

我的问题是,有没有办法在一个 SQL 事务中在一个模型上设置多个值,但不是全部,而不触发验证?

4

1 回答 1

8

为什么不直接设置属性然后调用savewith :validate => false

@record.attributes = your_hash # won't nil non-mentioned attributes, as you expect it to
@record.save :validate => false
于 2012-04-26T21:03:33.553 回答