開発環境
macOS Catalina
Rails 6v
自己開発をする上で、そう言えばこの処理の違いを言えと言われると答えることができないことに気付きました。
なので、まとめてみました!何かの役に立てればと思います。
結論
saveメソッド・createメソッドの違いは
メソッドの目的、それはDBにデータを保存することです。
メソッド名やちょっとした処理の内容は異なりますが、最終行われる処理の結果は同じです。
saveメソッドを使用すると少しコードの数が多くなりますが、createメソッドは短くすることができます。
ActiveRecord
ActiveRecordとはMVCのM(モデル)に関連するテーブル操作に対して使用できるメソッドの総称のことです。
saveメソッドやcreateメソッドはデータベースの情報を円滑に受け渡しをすることのできるコードになっています。
それぞれの使い方
saveメソッド
@post = Post.new(title: "hello")
@post.save
newメソッドでpostインスタンス変数を生成してから、saveメソッドでインスタンス変数を保存する必要があるので短くても2行になってしまいます。
createメソッド
@post.create(title: "hello")
createメソッドはインスタンス変数の生成と保存を行うので、1行で済むという違いがあります。
まとめ
saveとcreateメソッドは処理の結果は同じでも内容が違うことです。
そのほかには、
saveメソッドcreateメソッドにはsave!・create!があります!
処理の中には、結果が同じでも内面的に違うことがあるので、知ってみると楽しいです。
それぞれの処理の内容の特徴を知ることで理解を少しは深めることができてきているなと思います。
ふと思ったことをまとめることができればと思います。
何かアドバイス等あればコメントお願いします!!