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 (コントローラー名)」

コメント

タイトルとURLをコピーしました