Ruby on Railsでアプリを作るときに、ブラウザからのリクエストを受けて処理の流れを制御する人といったらコントローラ!
コントローラが無いと、処理が始まらない。
ということで、コントローラについて入門してみようと思う。今まではなんとなく使ってたからね…。
プロジェクトの作成
入門をするためのプロジェクトを1つ作成する。
まず、今回はDBを使わないけどDBのセットアップしとかないと、なかなかRailsがうまく動いてくれないのでJavaDBに適当なDBを1つ作る。
まず、サーバーを起動する。
そして、DBを作成する。DB名はcontroller_eduにしておいた。 ユーザ名とパスワードもcontroller_eduに設定した。ここらへんは適時変えてもらえればいいと思う。
本当はRailsだとdevelopmentとtestとproductionの3つのDBを作るのが一般的だけど、今回はDB使わないのでとりあえず1つだけ作ってそれを使うことにする。
DBの準備が出来たので、NetBeans 6.5からRuby on Railsアプリケーションを新規作成する。名前は「controller_edu」にした。DBは使わないけど、さっき作ったcontroller_eduデータベースを開発、テスト、運用に設定する。JDBCを使用してテーブルにアクセスするもチェックしておいた。
プロジェクトの作成が終わったのでとりあえず、コントローラを作成する。コントローラを作成するには、プロジェクトビューのコントローラで右クリックして生成...を選択することで出来る。
とりあえず、名前にsample、ビューにfooと入力してコントローラを作成する。
ここで入力した名前のコントローラが作成される。そして、ビューに指定したアクション(メソッド)も同時に作成される。
そうすると、出力ウィンドウに以下のメッセージが表示される。何が作られたか一目瞭然だ。
exists app/controllers/
exists app/helpers/
create app/views/sample
exists test/functional/
create app/controllers/sample_controller.rb
create test/functional/sample_controller_test.rb
create app/helpers/sample_helper.rb
create app/views/sample/foo.html.erb
今回の操作で作られたファイルは
- sample_controller.rb
- sample_controller_test.rb
- sample_helper.rb
- foo.html.erb
の4つのファイルになる。sample_controller.rbを開くと、fooメソッドのあるSampleControllerが作られているのがわかる。
class SampleController < ApplicationController
def foo
end
end
動きを確認
今作ったコントローラを動かしてみる。
F6を押してプロジェクトを実行すると、GlassFish v3が立ち上がってhttp://localhost:8080/controller_edu/が表示される。
Ruby on Railsのデフォルトでは、このURLの後にコントローラ名/アクション名と続けることで、特定のアクションの特定のメソッドを実行できる。
先ほどジェネレータでsampleコントローラのfooアクションを作ったのでhttp://localhost:8080/controller_edu/sample/fooで実行できる。動かしてみよう。(DBが起動いていないとエラーになるのでDBが起動していない場合は起動しよう)
下のような画面が出ればコントローラが正しく動いている。
これで、コントローラを勉強するための下地が整った。次からは、このコントローラに手を入れたりして動きを見ていこうと思う。