LoginSignup
1
3

More than 3 years have passed since last update.

Raisアクションコントローラーにおけるnewとcreateの違い

Last updated at Posted at 2020-10-14

初投稿です。

復習でnewとcreateの違いがごちゃごちゃになったときがあったので
備忘録として投稿させて頂きます。

コントローラーアクションnewとcreateの違い

どちらも作成という意味です。
ですが大きな違いは2つあります。

1つ目はidを与えるかどうか

newアクションにはIDを与えません。
また、newアクション専用のページに遷移する事が多いです。
例えばTweetの新規投稿、メルカリなら出品ページとして理解するのが良いと思います。

逆にcreateアクションにはその投稿に対してIDを与える
例えばTweetで投稿したらその時の投稿者や投稿した時間などが記載されていると思います。
これは投稿した瞬間にIDが与えられモデルからDBに保存される様になっています。
ここから、編集したり削除する事もできますがこれらはIDがあるからこそできるのです。

sample.rb

アクションコントローラーの基本的な使い方


newアクション

  def new
    @tweet = Tweet.new
  end


createアクション

  def create
    Tweet.create(tweet_params)
  end

2つ目はHTTPメソッドが違う
ターミナルでrake routes(rails routesでも可)で確認したら出てきます。

createアクション
tweets POST   /tweets(.:format)                                                                        tweets#create

newアクション
new_tweet GET    /tweets/new(.:format)                                                                    tweets#new

HTTPメソッドは4種類あります。以下を参照して下さい。

HTTPメソッド どのような時に用いられるリクエストか

GET     ページを表示する操作のみを行う時
POST    データを登録する操作をする時
PUT     データを変更する操作をする時
DELETE  データを削除する操作を行う時

以上となります。

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