LoginSignup
12
6

More than 5 years have passed since last update.

saveとupdate_attributesの違い

Last updated at Posted at 2015-05-23

既存プロダクトにあらたな機能を付け加えようとcontroller内をいじっているとき「ん?updateアクションのときはupdate_attributesだけどそのほかだとsaveになってるぞ、何か違いあんのか?」とふと思って、ちょこっと調べたのでメモ程度に残しておくことにしました。

save

レファレンスによると”生成したモデルオブジェクトをデータベースに保存する”と記されている。参考URL -> Railsドキュメント

ピンとこないがまあオブジェクトを呼び出してそこに何かを代入して保存のようなときにsaveを使えってことかな。

つまりモデル名.オブジェクト名 =とやってから保存するときにsaveを使うってことと勝手に理解しました笑

update_attributes

レファレンスによると”データベースから取得したオブジェクトを更新”と記されている。参考URL -> Railsドキュメント

こっちはなんとなくイメージ湧きます。つまりモデル名.update_attribute(オブジェクト名, オブジェクト名)で保存できるってこと。

結果

まあ保存することのみを考えるなら特に意識する必要はないのかと思いました。
もちろんvalidation、callbackなどを考慮するときは考えなきゃですが。。。
そこは以下を参考にしださい笑
http://qiita.com/tyamagu2/items/8abd93bb7ab0424cf084
http://qiita.com/rtoya/items/29cef3e328299781a328

こんなんでいいのか・・・アドバイスあったらコメント下さい!

コールバックで思い出しましたがchangedメソッドは使うとき時間かかりました。次はそれについて書こうかな。

12
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
6