tyoshikawa1106のブログ

- Force.com Developer Blog -

Rails:オブジェクトの更新について

オブジェクトの更新についてです。


基本的な更新の方法は2つです。ひとつは、属性を個別に代入する方法です。
f:id:tyoshikawa1106:20150803121848p:plain


変更をデータベースに保存するために最後にsaveを実行する必要があることを忘れないでください。保存を行わずにreloadを実行すると、データベースの情報を元にオブジェクトを再読み込みするので、以下のように変更が取り消されます。
f:id:tyoshikawa1106:20150803121913p:plain


更新処理を実行すると『updated_at』の値が変更されます。
f:id:tyoshikawa1106:20150803122012p:plain


属性を更新するもうひとつの方法は、update_attributesを使うものです。
f:id:tyoshikawa1106:20150803122059p:plain


update_attributesメソッドは属性のハッシュを受け取り、成功時には更新と保存を続けて同時に行います (保存に成功した場合はtrueを返します)。ただし、検証に1つでも失敗すると、update_attributesの呼び出しは失敗します。


たとえば、パスワードをレコードに保存することを要求すると検証は失敗します。特定の属性のみを更新する必要がある場合は、以下のようにupdate_attributeを単発で使用して制限を回避する必要があります。
f:id:tyoshikawa1106:20150803122246p:plain


f:id:tyoshikawa1106:20150803122644p:plain