コントローラとアクションの作成

前のページまででアプリケーションの雛形となる部分を作成しました。ここから独自のコードを追加していきます。

Railsはモデル(M)、ビュー(V)、コントローラ(C)からなるMVCパターンを使っています。モデルは主にデータベースとのやり取りを行いデータの管理を行います。ビューは処理した結果の画面表示などを行います。コントローラはユーザーとモデル、ビューの間を取りもつ存在です。

p4-1

ここではコントローラを作成します。先ほどの図の通り、コントローラはユーザーからのリクエストを受けてモデルやビューとのやり取りを行う部分です。

より具体的に記述すると、ユーザーからコントローラが呼び出されると対応するクラスのオブジェクトが作成され、その中のメソッドが実行されることになります。このコントローラの中で定義されるメソッドのことをアクションと呼んでいます。つまりコントローラとアクションを作成するとは、クラスを定義し処理を行うメソッドを記述するということです。

Railsではコントローラを作成するためのスクリプトが用意されています。「script」ディレクトリの中に作成されている「generate」スクリプトを使用して次のように作成します。

ruby script\generate controller コントローラ名

今回は例として「main」という名前のコントローラを作成してみます。コマンドプロンプトを起動し、アプリケーションのルートディレクトリに移動してから次のように実行します。

ruby script\generate controller main

p4-2

必要なディレクトリを作成した後でファイルが4つ作成されています。

app/controllers/main_controller.rb
app/helpers/main_helper.rb
test/functional/main_controller_test.rb
test/unit/helpers/main_helper_test.rb

今回作成されたファイルの中でコントローラとして使われるファイルは「app\controllers」ディレクトリに作成された「main_controller.rb」ファイルです。

p4-3

このファイルはRubyで記述されたスクリプトファイルです。テキストエディタで開いて下さい。次の2行だけが記述されています。

class MainController < ApplicationController
end

このようにコントローラを作成すると「ApplicationController」クラスを継承し、名前が「コントローラ名+Controller」のクラスが定義されます(クラス名の先頭は大文字となります)。

アクションの作成

先ほど記載した通り、アクションとはコントローラを表すクラスの中で定義するメソッドです。例えば「hello」というアクションを作成するということは「hello」というメソッドを定義することです。

class MainController < ApplicationController

  def hello
  end

end

1つのコントローラーの中に複数のアクションを定義できます。今回はもう一つ「bye」アクションを作成します。

class MainController < ApplicationController

  def hello
  end

  def bye
  end

end

これで1つのコントローラとその中に2つのアクションを作成しました。