LoginSignup
0

More than 3 years have passed since last update.

Rails:コントローラに定義する基本的7つのアクション

Posted at

最初に

カレンダー企画2020の16日目
プログラミングの勉強を始めて3ヵ月程経ったので学んだことのメモをアウトプットとして記事に残します。
これからプログラミングの世界に入る人の手助けになれたら嬉しい限りです。
間違っていたり、言葉が違っていたり、誤解されるような言葉があったら教えてください^^
言葉を長々と読みづらかったら申し訳ありません。少しずつなれてがんばります。

railsの7つのアクションについてちょっとまとめてみる

railsのControllerで使われる基本7つのアクションがある。
(例外として自作で名前をつけて作る事もある。)
これから紹介する7つの役割をしたい時は原則つける名前が定義されている。
一覧でどうぞ!

アクション名 役割
new データを新規作成する
create データを追加する
index データの一覧を表示する
show データの内容を表示する
edit データを編集する
update データを更新する
destroy データを削除する

言葉の表現の仕方は色々あると思うので自分で理解しやすいものにしてください!(意味が変わらない程度に、、、)

new

新規作成するという役割があります。

たとえば、
SNSで何か投稿しようと文字を書いたり、写真をアップロードしたりする場所
ブログなら記事を書いている場所
そこがnewアクションです!

create

データを追加、登録するという役割があります。

たとえば、
newアクションで作成したもの(上記の例の続き)
「投稿」とかのボタンありますよね?
それがcreateアクションです!

書いただけではどこにも表示されない。誰も見れない。残らない状態ですよね!
createをしてはじめてデータとして残ります。

index

一覧表示という役割があります。

たとえば、
SNSでたくさんの人の投稿内容がズラッと並びますよね?
それがindexアクションです。

show

内容、詳細を表示という役割があります。

たとえば、
indexで表示されているものをクリック、タップすると内容が全部みれたり、画面がその投稿だけになりますよね?
それはshowアクションです。

edit

編集する役割があります。

たとえば、
投稿した内容で間違えあった!
情報が更新されたので投稿内容を変えたい!
そんな時に編集しますよね?

編集するところがeditアクションです。

newではないところに新しく作るアクションで
editではある物を作り直すアクションです。(newに似ていますね。)

update

更新する役割があります。

編集した内容を保存するイメージです。
newを保存するのにcreateアクションを使います。
editを保存するのにupdateアクションを使います。

セットで覚えやすいかもしれないですね。

updateはeditを保存するだけでなく他にも変更を更新したりします。
editとだけセットという考えはやめてください。(書いといてなんですが、、、)

上書き保存的なイメージです!(私は!!)

destroy

削除の役割です。

たとえば、
投稿をを削除したり、アカウントを削除したりする時に行われるアクションです。
データベースからデータを消し去ります!(物理削除というみたいです。)

これは余談
論理削除というのもあり、画面上では消えているがデータは残っている状態です。

たとえば、
運営としては過去に注文した履歴は残して置きたい。でも、ユーザーは退会したい。こんな時に使われます。ユーザー側からはログインできない状態(退会)管理者側の画面にはデータが残るという処理もできます。
この時に使うアクションはdestroyではなく、updateなのです!こういうupdateの使い方もあるみたいです!

最後に

ザーッとまとめましたが、あくまで基本的なアクションです。
showの画面にindexを表示するようなこともあります。上記の内容が絶対ではないですが基本的にこれを使います!感じで覚えて置くといいかも!

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
0