LoginSignup
0
2

More than 3 years have passed since last update.

コントローラーのアクションについて

Last updated at Posted at 2020-09-24

Railsで使用するアクションとは何か?

コントローラーで定義されるメソッドを『アクション』と言います。(コメントからご指摘を受け認識誤りでしたので文章を改善いたします。↓の意味合いで間違いないと思います。)
コントローラーで定義されるメソッドを指してアクションと呼びます。
これを理解するになるには、MVCについて理解しないといけないです。それを理解した上で、情報を持ったルーティングからコントロラーに情報が送られ、ビューで様相を整え表示させる。この流れの、ルーティングから情報を持った内容にアクションを組み合わせることで、その情報で何を行いたいかの指針を決める役割になるのです。(そう言う認識でいます)
主として使用するアクションとして7つありますのでそれらを調べていきます。

7つのアクションについて

それぞれの役割を要約したものは以下のとおりです。
index(HTTPメソッド = get )
リソースの一覧表をするものです。要は、あるホームページを検索して、検索結果のurlをクリックして、そのホームページの一覧が表示される状態(処理)を指します。
new(HTTPメソッド = get )
リソースを新規作成するものです。要は、ユーザー等の情報をデータベースに登録する際に行う処理を指します。
create(HTTPメソッド = post )
リソースを新規作成して追加(保存)するものです。要は、ユーザー等の情報をデータベースに保存する際に行う処理を指します。
edit(HTTPメソッド = get )
リソースを更新するためのフォームを作成するものです。要は、データベースに保存している情報に編集を加える処理を指します。
show(HTTPメソッド = get)
レコードの内容を表示させるものです。要は、一覧表示されている情報から、ある特定の箇所に遷移する際の処理を指します。例)詳細ページに遷移する
update(HTTPメソッド = patch/put)
リソースを更新するものです。要は、編集した内容を、データベースに反映させる処理を指します。
destroy(HTTPメソッド = delete)
リソースを削除するものです。要は、データベースに保存されている情報を消去する処理を指します。
※リソースについて、プログラムを利用するデータ全般のことを指します。要は、パソコンで使用する情報的なことだと言う認識です。
※HTTPメソッドに関しては、こちらで記述してます。

ややこしい違いを調べました

上記でのアクションに、「あれ、同じことを言ってね」と思った箇所がいくつかあったかと思います。なので、それを砕いていきます。

newとcreateって何が違う?

簡単にいきますよ、newはオブジェクトを生成するだけでデータベースに保存されないものです。createは、オブジェクトを生成して、データベースに保存するものです。アプリケーションを作成する際は、臨機応変に使用するといったものだと考えてます。

saveについて

調べていくと、saveメソッドというものがありました。このメソッドは、newの中で使うもので、保存すると言った意味を持ったメソッドです。で、ここで疑問に思うものが、createと何が違うのか?ということです。違いとしては、newでオブジェクトを生成してからsaveを行えるので、その中で行いたい処理等があるのであれば、それをやってから保存すると言った流れができます。(多分こんな感じ、違ったらご指摘ください😃)

editとupdateの違いについて

newとcreateとの違いについてと同じで、editはオブジェクトを生成するだけでデータベースに保存されません。updateはオブジェクトを生成して、保存を行うものです。

まとめ

Railsを使用する際には、必要な知識なので覚えるようにしたいと思います。

0
2
2

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
2