コントローラーの設定について

コントローラーとは、リクエストに対してどのような処理を行うかを定義するところになります。

リクエストに対応する処理をまとめて用意しておき、ルーティングからリクエストを受け取って処理を行った後、クライエントにレスポンスを返します。

 

具体例を挙げると

 

ルーティングから送られてきた「トップページを表示する処理」に対して、実際の処理内容について定義します。

レスポンスに必要となるデータがあれば、モデルと連携してデータ取得をしたり、受け渡しを行い、レスポンスを完成させます。

 

Railsにおいて新規アプリケーションで、コントローラーを作成する際は、ターミナル上で下記のコマンドを実行します。そうするとコントローラーを記述するためのファイルが生成させます。

 

rails g controller コントローラー名

 

*gは英語で「生成する」を意味するgenerateの略です。

*コントローラーの命名規則は、複数形を使用します。

 

具体例を挙げて説明していきます。

 

実際に、ターミナル上でrails g controllerをする際は、

現在、どのディレクトリにいるかを確認します。

 

作成しているアプリのディレクトリ下に移動して、コマンドを実行するようにします。

 

ターミナル上で下記のコマンドを実行する。

rails g controller posts

 

そうすると、このような表示がされます。

Running via Spring preloader in process 24861

     create  app/controllers/posts_controller.rb

     invoke  erb

     create    app/views/posts

     invoke  test_unit

     create    test/controllers/posts_controller_test.rb

     invoke  helper

 

*createは「生成したファイル」という意味です。

invokeは生成したファイルに関連するフレームワークの機能を表しています。

 

そうすると、VSコードに上記のファイルが生成されています。

 

コントーローラーを定義するためのファイルが生成できたので、実際にコントローラーにアクションを定義していきます。

 

アクションは、コントローラーにインスタンスメソッドとして、定義していきます。

どの動作を行うかによって、種類が分かれます。

 

アクション名

どのような時に動くか

index

一覧表示ページを表示するリクエストに対応して動く

new

新規投稿ページを表示するリクエストに対応して動く

create

データの投稿を行うリクエストに対応して動く

show

個別詳細ページを表示するリクエストに対応して動く

edit

投稿編集ページを表示するリクエストに対応して動く

update

データの編集を行うリクエストに対応して動く

destroy

データの削除を行うリクエストに対応して動く

 

コントローラーにアクションの設定をする際の記述は、

 

 def  アクション名

 end

 

と記述します。