さらなる高みへ -higher ground -

プログラミング学習の定着を狙いとしたアウトプット(独り言)をしてみるブログ

コントローラーについて【Ruby on Rails3】

ここからMVCの学習を始める。
最初にコントローラーについて理解していきたい。

  • コントローラーの役割
  • コントローラーのアクションの作成方法

コントローラーとは

コントローラーは、MVCと呼ばれる3つの機能のうちの1つである。
アプリの中で、コントローラーがどのような役割を担っているのかというと下記の図のようなイメージである。

コントローラーは「司令塔」である。
ユーザーからの要求を受け取ったら、「モデル」と「ビュー」に仕事を依頼して完了させる役割がある。
また、コントローラーの仕事は7つに分類でき、「7つのアクション」と呼ばれる。
これがどういうものなのか見ていきたい。

コントローラー7つのアクション

ルーティングの記事に記載したが、コントローラーで行う仕事は「アクション」という単位で記述する。
機能的には、アクション名やアクションの機能を自由に設定することもできるが、基本的には7つのアクションのルールに従ってコーディングするのがRailsのセオリーである。

ルールが統一されていることで、初めてそのコードを読んだ人でもどんなことをしようとしているのか把握しやすいというメリットがある。
つまり生産性向上のために7つのアクションが決められているというわけだ。

7つのアクションとそのの内容について

具体的なアクション名とその役割を確認する。

アクション名 役割
index リソースの一覧表示を行う
show リソースの詳細表示を行う
new リソースの新規登録画面を表示する
create リソースの追加を行う
edit リソースの編集画面を表示する
update リソースの更新を行う
destroy リソースの削除を行う

例えば、ツイートの一覧表示をさせたいとする。
その場合は、以下の手順でコードを記述することになる。

  1. コントローラーにindexアクションを追加する。
  2. indexアクションの中に、ツイート全件情報の取得をモデルに依頼するメソッドを記述する。
  3. indexアクションの中に、取得したデータをブラウザに表示するようビューに依頼する(実際は省略可能)。
コントローラーのファイルの場所

コントローラーのファイルは、「app」「controllers」以下に配置される。
よく使うファイルなので、覚えておくと作業がスムーズになる。

コントローラーの作成

ここから実際にコントローラーの作成に移る。

例によってpwdディレクトリの確認から。

$ 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アクションが作成できた。
次回ビューを作成し、それができたら正しく動くか確認を行う。

 

要点チェック