1
0

はじめに

データ保存などで使用するsaveメソッド・createメソッドをどういう使い分けをしたら良いかに悩んだので、
勉強がてら使い分けについてまとめました。

saveメソッドの使用場面

saveメソッドは以下のように使用します。

user = User.new(name: 'taro', age: 18) #インスタンス生成
user.save #生成したインスタンスの保存

saveメソッドの戻り値はtruefalseです。
実行結果によって分岐をさせたい場合などは、saveメソッドが使用できます。

createメソッドの使用場面

createメソッドは以下のように使用します。

user.create(name: 'taro', age: 18) #インスタンス生成+保存

createメソッドはnewsaveを一度に実行してくれます。
しかし、createはインスタンスを戻り値として返すため、登録に成功したかどうかの判定には使用できません。

まとめ

下記のような使い分けができます。

saveメソッド:実行結果による判定を行いたいとき
createメソッド:インスタンスそのものを利用したい時、実行結果の判定が不要なとき

最後に

誤りなどあればご指摘いただけるとありがたいです・・!

1
0
1

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
1
0