2

Railsで呼び出すことができmodel.update_attribute :foo, 'bar'、モデルの残りの部分を検証せずに、db内のその1つの属性だけを更新することを私は知っています。これにより、1つのSQLトランザクションが発生します。

で複数の属性を設定することもできますが.update_attributes、これは検証をスキップできません。

または、.save( :validate=>false )検証せずにモデルを呼び出して更新することもできます。ただし、これにより、モデルのすべての属性が特定の列に制限されるのではなく、現在の状態で保存されます。

私の質問は、単一のSQLトランザクションで、検証をトリガーせずに、モデルに複数の値を設定する方法はありますが、すべてではありませんか?

4

1 に答える 1

8

属性を設定してから呼び出しsaveてみません: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 に答える