【Ruby on Rails】コントローラーとは

実行環境

■MacOS
■Visual Studio Code
■Ruby
■Ruby on Rails

ルーティング、モデルについての記事は下記になります。

【Ruby on Rails】ルーティングとは

2021.04.15

【Ruby on Rails】モデルとは

2021.04.13

 

コントローラーとは

コントローラーは、MVCの「C」にあたる部分です。

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

コントローラーは、MVCにおける橋渡しの役割も持っています。

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

 

コントローラーの作成

Railsに必要なファイルを生成するには、「rails gコマンド」を使用します。

 

rails gコマンド

Railsアプリに追加で必要なファイルなどを生成するために使用するコマンドです。

rails g」に続けて、生成したいファイルの種類とファイル名を記述します。

rails g ファイルの種類 生成するファイル名

実行して生成されるファイルは、1つとは限りません。

必要な関連するファイルも同時に生成してくれます。

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

コントローラーを作成するには、「rails g controller コマンド」を使用します。

 

Rails g controllerコマンド

コントローラーやそれに付随するファイルを一度に作成してくれるコマンドです。

以下のような形で実行します。

rails g controller コントローラー名

コントローラーの命名規則は、複数形を使用することです。

例えば、顧客の情報を管理する場合は、「customers」、商品の情報を管理する場合は「items」という名前になります。

※ちなみにモデルを作成する際は単数形です。

 

rails g controller posts # postsコントローラーを作成

上記のコマンドを実行すると以下のような処理が表示されます。

Running via create 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は生成したファイルに関連するフレームワークの機能を表しています。

 

rails dコマンド

rails dコマンド」は、rails gコマンドとは逆に、生成したファイル一式をすべて削除するコマンドです。

1つのファイルだけではなく、関連するファイルも一気に削除してくれるため、不要なファイルが残ってしまうことを回避できます。

rails d ファイルの種類 削除するファイル名

d」は英語で「破棄する」を意味する「destroy」の略です。

コントローラーの名前を間違って作成した際など、必要になれば使用しましょう。

 

コントローラーにアクションを定義する

コントローラーは、リクエストに対応する処理を記述する場所です。

コントローラーの処理は「アクション」として分類されます。

 

アクション

コントローラー内における、処理のカテゴリーのことです。

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

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

今回は、例としてトップページを表示するためのアクションを記載します。

トップページを表示するためには、上記の中から「indexアクション」を用います。

class PostsController < ApplicationController
  def index # indexアクションを定義
  end
end

indexという名前のインスタンスメソッドを定義するだけです。

これで、ルーティングに対応するアクションを用意することができます。

 

まとめ

✅コントローラーとは、リクエストに対する処理を実行し、クライアントに返却する役割のこと(MVCの1つ)。

✅rails gコマンドとは、Railsアプリケーションに必要なファイルを自動生成するためのコマンドのこと。

✅rails g controllerコマンドとは、コントローラーとそれに付随するファイルを生成するコマンドのこと。

✅rails dコマンドとは、rails gコマンドで生成したファイルを削除するコマンドのこと。

✅アクションとは、コントローラー内における処理のカテゴリーのこと。

 

おすすめ書籍

プログラミング未経験の方向け

ゼロからわかる Ruby 超入門 (かんたんIT基礎講座)

スラスラ読める Rubyふりがなプログラミング

 

プログラミング初心者向け

Ruby on Rails 6 超入門

たった1日で基本が身に付く! Ruby on Rails 超入門 たった1 日で基本が身に付く!