II-15-5. RoRを利用したWebアプリケーション開発

RoRによるWebアプリケーション開発の概要と作業の流れを解説する。RoRを利用して開発したWebアプリケーションの構成要素を説明し、データベースの設定方法やWebサーバの起動、インタラクションの確認方法などについて解説する。

【学習の要点】

* RoRを利用したWebアプリケーション開発は、Model、View、Controllerに該当する各要素の作成を通じて行われる。

* RoRではModel、View、Controllerの各要素を、scaffoldと呼ばれる仕組みにより一挙に自動生成することができ、開発を開始するにあたっての雛形とすることができる。

* scaffoldを利用して生成したアプリケーションは、データベースの設定、Webサーバの起動を行うことで即座に動作させることが可能である。

図II-15-5. Scaffoldを利用したアプリケーションの生成例

【解説】

1) RoRによるWebアプリケーション開発

* Modelの作成

「Ⅱ-15-4. RoRを利用したデータベースアプリケーション開発」を参照のこと。

* Controllerの作成

スクリプト「ruby script/generate controller [Controller名]」を実行することにより、Controllerの雛形を生成することができる。生成される要素は以下のとおり。

- app/controller/[Controller名]_controller.rb

Controllerの本体となるクラスを記述するソースコードファイル。初期状態ではControllerクラスが、メソッドを持たない状態で記述されている。Controllerクラスにアクションメソッドを追加することによってContorollerの開発を行う。

- test/functional/[Controller名] _controller_test.rb

Controllerの機能テストを記述するソースコードファイル。

- app/views/[Controller名]/

Controllerに対応したViewを配置するためのディレクトリ。このディレクトリにテンプレートファイルを置くことで、規約によりControllerとViewが関連付けられる。

- app/helpers/[Controller名]_helper.rb

Controller、およびControllerに関連付けられたView内から呼び出し可能なヘルパーメソッドを記述するソースコードファイル。

* Viewの作成

Viewはテンプレートによって表現される。動的なレスポンスを実現するテンプレートを記述する際には、テンプレートエンジンとして以下のようなライブラリを利用できる。

- builder – 主に、XMLレスポンスの構築に用いられる。

- erb – 主に、動的なHTMLページの構築に用いられる。

- rjs – JavaScriptの生成に用いられる。

テンプレートの配置ディレクトリ、およびファイル名は規約によって定められている。

- テンプレートは、それを呼び出すControllerと規約によって関連付けられる。テンプレートは、「app/views/[関連Controller名]/」ディレクトリに配置する。

- テンプレートのファイル名は「[アクションメソッド名].[フォーマット].[テンプレートエンジン名]」とする。

2) scaffoldによるアプリケーション生成

RoRでは、scaffoldと呼ばれる仕組みにより、簡単なアプリケーションを一挙に作成することができる。scaffoldを利用した場合の、アプリケーションの動作を確認するまでの手順は以下のとおり。

* railsコマンドによってアプリケーションのディレクトリ構造を生成する。

* 「ruby script/generate scaffold」スクリプトによってアプリケーションの雛形を生成する。

* config/database.ymlファイルの編集によってデータベース接続設定を行う。

* 「rake db:create」タスクにより、データベースの作成を行う。

* 「rake db:migration」タスクにより、データベースのマイグレーションを行う。

* 「ruby script/server」スクリプトによってWebサーバを起動する。

OSS Course Naviのコンテンツは IPA OSS モデルカリキュラムを基としています。