Railsのコントローラーについて解説
コントローラーとは
Railsにおけるコントローラーについて説明します。
コントローラーとは、ユーザーからの要求を受け取って「モデル」や「ビュー」に仕事を依頼する部分となります。
モデルやビューに依頼する内容はアクションと言って7つに分類することができます。
これを7つのアクションといいます。
以下が7つのアクションになり、このルールにしたがってアプリケーションのコーディングをしていきます。
アクション名 | 役割 |
index | リソースの一覧表示を行う |
show | リソースの詳細表示を行う |
new | リソースの新規登録画面を表示する |
create | リソースの追加を行う |
edit | リソースの編集画面を表示する |
update | リソースの更新を行う |
destroy | リソースの削除を行う |
コントローラーにアクションを追加する手順
①コントローラーを作成する
ターミナルに以下の手順でコマンドを入力しエンターを押します。
#cdコマンドでカレントディレクトリを雛形で設定したアプリ名に移動する
ec2-user:~/environment $ cd miniblog
#rails g (コントローラー名)コマンドでコントローラー作成する
ec2-user:~/environment/miniblog (master) $ rails g controller test
上のコマンドを実行すると下図のようにファイルが生成されます。createとなっている部分が作成されたファイルになります

contollerファイルを左のツリービューで見るとこんな感じです。

間違えてしまった時は、以下のようなコマンドを使えば削除できますので参考にしてください。
#rails d (コントローラー名)コマンドで削除
ec2-user:~/environment/miniblog (master) $ rails d controller test
②コントローラーファイルを開く
上で紹介してしまいましたが、作成したファイルを「ダブルタップ」、もしくわ、「クリックしエンター」でファイルを開くことができます。

ファイルが開くと下図のように表示されます。

③ファイルにアクションを追加する
開いたファイルにアクションを記述していきます。
参考にindexアクションを追加してみます。
class TestController < ApplicationController
#indexアクションを追加
def index
end
end
def〜endの間に必要な処理を記述すると、一覧を表示する画面にどんなデータをデータベースから取ってきてどの順番でデータを取りたいか、などを決めることができます。以下に例を一つ書いておきます。
def index # ブログ一覧表示
#処理
@blogs = Blog.all.order("created_at DESC").page(params[:page]).per(5)
end
1行処理を追加してみました。
この行の意味は、「Blogテーブルから全てのカラムデータを取得し、新しく作成したデータが上になるように表示させ、6個目のデータの時にはページを変えてね」と言う内容の物を最終的にインスタンス変数「blogs」に代入する意味になります。
インスタンス変数、allメソッド、orderメソッド、gem「kaminari」をインストールして使えるpageメソッド、perメソッドを使って処理を記述しています。この内容が知りたい方は調べてみてください。
まとめ
- Railsの「コントローラー」とは「モデル」や「ビュー」に仕事を依頼する為のコードを記述するファイル
- ファイルを作成するコマンドは「rails g (コントローラー名)」
- ファイルを削除したい時は「rails d (コントローラー名)」
