既存プロダクトにあらたな機能を付け加えようと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メソッドは使うとき時間かかりました。次はそれについて書こうかな。