TOPシステム開発> Scaffold
Ruby on Rails入門
Ruby on Rails入門

第3回:アーキテクチャと検索機能の追加
著者:DTS  五座 淳一   2006/6/7
1   2  3  4  次のページ
Scaffold

   前回は、Scaffoldを使って簡単なアプリケーション「アドレス帳」を作成しました。たった数回の操作だけで、Webアプリケーションを構築するための足場(Scaffold)を組み上げることができました。

   Scaffoldで生成されたアプリケーションは、CRUD(Create、Read、Update、Delete)の機能を備え、Rails開発において重要な要素が数多く含まれています。これらを手がかりにRails開発の基礎を学んでいくことにしましょう。


コマンドプロンプトを使用したアドレス帳アプリの作成

   前回はRadRailsを使用してアプリケーション「アドレス帳」の作成方法を紹介しましたが、コマンドプロンプトに下記のコマンドを入力することで、前回のアプリケーション「アドレス帳」と同じことが実現できます(実行時に出力されるログは省略しています)。

rails AddressBook

cd AddressBook

ruby script/generate scaffold Contact

   1行目のコマンドでプロジェクトを作成し、3行目にてscaffoldジェネレータによるアプリケーションの作成を行っています。


アーキテクチャ

   RailsはMVCモデルを採用したフレームワークです。アプリケーションは「状態を保持するモデル」「表示や入出力を担当するビュー」「それらを統率するコントローラ」の3種類に分けられます。

   まずはモデル/ビュー/コントローラがどのように配置され連携し、Webアプリケーションとして動作していくのかを解説します。


ディレクトリ構成

   Railsではアプリケーションの開発に必要なディレクトリ構成が、あらかじめ決められています。特に重要なディレクトリは次の通りです。

アプリケーションの開発に必要なディレクトリ構成
図1:アプリケーションの開発に必要なディレクトリ構成

   図1を含むすべてのディレクトリ構成は、前回紹介したRadRailsでプロジェクトを作成、もしくはコマンドプロンプトからrailsコマンドを実行することによって自動的に生成できます。


基本的な処理の流れ

   Railsはユーザからのリクエストをどのように処理しているのでしょうか。Railsの最も基本的な処理の流れを見てみましょう。

  1. Webブラウザに指定したURLがRailsによって解釈され、コントローラ、アクション(コントローラのメソッドのこと)を呼び出す
  2. コントローラはモデルと協調して処理を行う
  3. コントローラはビューに結果を渡す
  4. Webブラウザに結果を表示する

表1:基本的な処理の流れ

基本的な処理の流れ
図2:基本的な処理の流れ

   Railsでは、URLをもとに呼び出すコントローラ、アクション、ビューを決定します。例えばコントローラ「contacts」、アクション「list」を呼び出す場合のURLは、以下のようになります。

http://localhost:3000/contacts/list

   またコントローラの処理結果を使って、Webブラウザに結果を表示するためのビューは、コントローラ名のディレクトリ配下の「アクション名.rhtml」という決まりです。先ほどの例の場合は「/views/contacts/list.rhtml」となります。

   もちろんこれ以外の形で処理を行うことも可能ですが、基本的にはこの流れにそって処理が行われます。

   このマッピングルールにも、設定よりも規約を重視するRailsの特徴が活かされています。マッピングに関する設定ファイルを記述する必要がなくなり、非常に合理的な機構となっています。

1   2  3  4  次のページ


株式会社DTS  五座 淳一氏
著者プロフィール
株式会社DTS  五座 淳一
技術部所属。入社以来、交換機や携帯電話、Webシステムなど様々な開発を担当する。Ruby on Rails上に構築したオープンソースのCMS「Rubricks」(http://rubricks.org/)のコミッタ。


INDEX
第3回:アーキテクチャと検索機能の追加
Scaffold
  モデル
  コントローラ
  コントローラの変更