はじめに
データ保存などで使用するsave
メソッド・create
メソッドをどういう使い分けをしたら良いかに悩んだので、
勉強がてら使い分けについてまとめました。
saveメソッドの使用場面
save
メソッドは以下のように使用します。
user = User.new(name: 'taro', age: 18) #インスタンス生成
user.save #生成したインスタンスの保存
save
メソッドの戻り値はtrue
かfalse
です。
実行結果によって分岐をさせたい場合などは、save
メソッドが使用できます。
createメソッドの使用場面
create
メソッドは以下のように使用します。
user.create(name: 'taro', age: 18) #インスタンス生成+保存
create
メソッドはnew
とsave
を一度に実行してくれます。
しかし、createはインスタンスを戻り値として返すため、登録に成功したかどうかの判定には使用できません。
まとめ
下記のような使い分けができます。
save
メソッド:実行結果による判定を行いたいとき
create
メソッド:インスタンスそのものを利用したい時、実行結果の判定が不要なとき
最後に
誤りなどあればご指摘いただけるとありがたいです・・!