2010年2月11日木曜日

「Rubyの世界へようこそ!」の表示

まずはここから…文字を画面に表示します。

新規クラスの作成
ローカルサーバの設定が終わったということで、次はプログラミングを開始します。まずは「Hallo Ruby World」とでも表示してみましょう。図1の様に「新規rubyクラス」を作成します。
 
図1 新規rubyクラスの作成

次にダイアログが表示されますが、保存場所は画面(ビュー)でもなくモデル(DBアクセス)でもなくコントローラ(処理ロジック)である為「demo\app\controllers」に作成する様に図2の様に選択します。
 
図2 Rubyクラス作成

Rubyクラスが作成されると、図3のように表示され、「SayController」クラスが作成されたことがわかります。ただし、左の保存ファイル名を見ると「say_controller.rb」となり、入力したクラス名とことなっていることがわかります。

図3 新規クラス作成

名命規則
Rubyはクラス名、モジュール名、および定数名は大文字から始まる必要があります。規約によりこれらの名前ではアンダースコアは使わず、各単語の先頭の文字を大文字にすることで単語の区切りを表します。
またファイル名は、小文字とアンダースコアを使うことを想定されている様ですので、異なった物の様ですが、「ファイル名」or「クラス名」の区別がつくようにわざと変えている様です。

アクションの作成
さて、今度は新しく作成したクラスを「ApplicationControler」クラスを継承させ、クラスをコントローラーとして動くようにします。図4の様に"SayController < ApplicationController"とApplicationControllerクラスを継承するように編集します。

図4 コントローラクラスを継承したSayクラス


そして、Sayコントローラにアクション(メソッド)を追加します。図5の様に「hello」メソッドを追加します。これでコントローラの作成は完了です。
 図5helloメソッドの追加
ビューの作成
今度はブラウザ(ユーザー)インターフェースとなるビューを作成しま す。図6の様に「app/views/say/hello.html.erb」を作成します。

 図6 新規⇒ERBを作成

ファイルを作成後、自動的に基本的に必要なタグは書かれているので、h1タグを使って文字を表示します(htmlのお作法です)。エディットのウインドウ にタグをボタンで挿入できるので、図7の様にヘッダのタグを作成し、表示する文言を編集します。

図7 コーディング

さて、一旦保存し、先の手順によりサーバーを起動し、ブラウザで「http://localhost:3000/say/hello」と入力します…さて、表示されますか。

図6エラー表示

結果図6のようにはエラー表示。それでは原因を調査します。

エラーメッセージの確認
図6のメッセージをよく見ると以下の様に表示されていま す。

エラー対 象:NameError in SayController#hello
エラー理 由:uninitialized constant ApplicationContoroler

そし てソースをよくみると×ApplicationContoroler⇒○ApplicationControllerですね。


ではソースを修正して再度実行してみます。すると図8のようにやっと正しく表示されました。
図8「Rubyの世界へようこそ!」