LoginSignup
1
0

More than 3 years have passed since last update.

そう言えば分からないRailsのsave・createメソッドの違い

Last updated at Posted at 2021-02-04

開発環境

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!があります!

処理の中には、結果が同じでも内面的に違うことがあるので、知ってみると楽しいです。
それぞれの処理の内容の特徴を知ることで理解を少しは深めることができてきているなと思います。
ふと思ったことをまとめることができればと思います。

何かアドバイス等あればコメントお願いします!!

参考文献

railsガイド:https://railsguides.jp/active_record_basics.html

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