obj.update_attribute(:only_one_field, 'Some Value')
obj.update_attributes(field1: 'value', field2: 'value2', field3: 'value3')
これらはどちらも、ActiveRecord に更新を明示的に指示しなくても、オブジェクトを更新します。
Rails API は次のように述べています。
update_attribute
単一の属性を更新し、通常の検証手順を経ずにレコードを保存します。これは、既存のレコードのブール フラグに特に役立ちます。Base の通常の update_attribute メソッドは、検証モジュールが混在している場合にこれに置き換えられます。これはデフォルトです。
update_attributes
渡されたハッシュからすべての属性を更新し、レコードを保存します。オブジェクトが無効な場合、保存は失敗し、false が返されます。
したがって、オブジェクトを検証したくない場合は、 を使用する必要があります#update_attribute
。でこの更新を行った場合#before_save
、stackoverflow になりますか?
私の質問は#update_attribute
、保存前または検証だけをバイパスすることです。
また、ハッシュを渡す正しい構文は何#update_attributes
ですか...上部の私の例を確認してください。