create
メソッド:create
メソッドは、データベースに新しいレコード(または行)を作成し、それを保存するためのメソッドです。- モデルクラス(Active Recordモデルなど)に対して呼び出され、新しいデータベースエントリを作成します。
create
メソッドは通常、モデルの属性値を引数として受け取り、それをデータベースに保存します。データベースに保存された後、オブジェクトのインスタンスが返されます。- 例:
User.create(name: 'John', email: 'john@example.com')
はUser
モデルに新しいユーザーレコードを作成し、それをデータベースに保存します。
簡潔に言えば、インスタンス化はオブジェクトを生成し、そのオブジェクトの属性を設定するプロセスであり、create
メソッドはデータベースに新しいデータを作成し、それを保存するためのメソッドです。通常、オブジェクトを生成してから create
メソッドを使用してデータベースに保存します。例えば、RailsのActive Recordモデルでは、モデルの新しいインスタンスを生成し、それをデータベースに保存するために new
メソッドと save
メソッドを組み合わせて使用します。
if @item.saveで条件分岐して保存されたか見ることが多い。
if @item.saveでデータベースに保存される。
createは保存まで一体して行うので、@item.saveが使えなくなる。
だからこう書いたらいい
def new
@item = Item.new
end
def create
@item = Item.new(item_params)
if @item.save
redirect_to root_path
else
render :new
end
end
render :newでフォームの入力画面を再表示してくれる。(つまり保存されるまでそのページにとどまる)
すべてChatGPTさんに聞いた。