コントローラとアクションの作成
前のページまででアプリケーションの雛形となる部分を作成しました。ここから独自のコードを追加していきます。
Railsはモデル(M)、ビュー(V)、コントローラ(C)からなるMVCパターンを使っています。モデルは主にデータベースとのやり取りを行いデータの管理を行います。ビューは処理した結果の画面表示などを行います。コントローラはユーザーとモデル、ビューの間を取りもつ存在です。
ここではコントローラを作成します。先ほどの図の通り、コントローラはユーザーからのリクエストを受けてモデルやビューとのやり取りを行う部分です。
より具体的に記述すると、ユーザーからコントローラが呼び出されると対応するクラスのオブジェクトが作成され、その中のメソッドが実行されることになります。このコントローラの中で定義されるメソッドのことをアクションと呼んでいます。つまりコントローラとアクションを作成するとは、クラスを定義し処理を行うメソッドを記述するということです。
Railsではコントローラを作成するためのスクリプトが用意されています。「script」ディレクトリの中に作成されている「generate」スクリプトを使用して次のように作成します。
ruby script\generate controller コントローラ名
今回は例として「main」という名前のコントローラを作成してみます。コマンドプロンプトを起動し、アプリケーションのルートディレクトリに移動してから次のように実行します。
ruby script\generate controller main
必要なディレクトリを作成した後でファイルが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」ファイルです。
このファイルは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つのアクションを作成しました。