ここからMVCの学習を始める。
最初にコントローラーについて理解していきたい。
- コントローラーの役割
- コントローラーのアクションの作成方法
コントローラーとは
コントローラーは、MVCと呼ばれる3つの機能のうちの1つである。
アプリの中で、コントローラーがどのような役割を担っているのかというと下記の図のようなイメージである。
コントローラーは「司令塔」である。
ユーザーからの要求を受け取ったら、「モデル」と「ビュー」に仕事を依頼して完了させる役割がある。
また、コントローラーの仕事は7つに分類でき、「7つのアクション」と呼ばれる。
これがどういうものなのか見ていきたい。
コントローラー7つのアクション
ルーティングの記事に記載したが、コントローラーで行う仕事は「アクション」という単位で記述する。
機能的には、アクション名やアクションの機能を自由に設定することもできるが、基本的には7つのアクションのルールに従ってコーディングするのがRailsのセオリーである。
ルールが統一されていることで、初めてそのコードを読んだ人でもどんなことをしようとしているのか把握しやすいというメリットがある。
つまり生産性向上のために7つのアクションが決められているというわけだ。
7つのアクションとそのの内容について
具体的なアクション名とその役割を確認する。
アクション名 | 役割 |
---|---|
index | リソースの一覧表示を行う |
show | リソースの詳細表示を行う |
new | リソースの新規登録画面を表示する |
create | リソースの追加を行う |
edit | リソースの編集画面を表示する |
update | リソースの更新を行う |
destroy | リソースの削除を行う |
例えば、ツイートの一覧表示をさせたいとする。
その場合は、以下の手順でコードを記述することになる。
- コントローラーにindexアクションを追加する。
- indexアクションの中に、ツイート全件情報の取得をモデルに依頼するメソッドを記述する。
- indexアクションの中に、取得したデータをブラウザに表示するようビューに依頼する(実際は省略可能)。
コントローラーのファイルの場所
コントローラーのファイルは、「app」「controllers」以下に配置される。
よく使うファイルなので、覚えておくと作業がスムーズになる。
コントローラーの作成
ここから実際にコントローラーの作成に移る。
$ pwd # pictweetフォルダにいることを確認する
pwdを実行してカレントディレクトリがpictweetでなかった場合は、以下のコマンドを実行。
$ cd ~/environment/pictweet
|
確認出来たらコントローラーを作成する。
$ rails g controller tweets
rails g controller
$ rails g controller コントローラー名
このコマンドによって、コントローラーのファイルが作成できる。
tweetsコントローラーを作りたいときは、「rails g controller tweets」となる。
「g」というオプションの意味は「generate」を省略したものである。
また、コントローラー名を誤った時など、コントローラーを削除したい場合は「d」(destroyの略)というオプションを使用すれば一括で削除することができる。
ターミナルで
$ rails d controller コントローラー名
で削除
アクションの作成
コントローラーのファイルができたので、その中にアクションの内容を記述する。tweets_controller.rbを以下のように編集する。
app/controllers/tweets_controller.rb
class TweetsController < ApplicationController def index end end
ここまでの操作で、tweetsコントローラーとその中にindexアクションが作成できた。
次回ビューを作成し、それができたら正しく動くか確認を行う。