Rubyの第2回として,アプリケーションを容易に開発するためのフレームワーク「Ruby on Rails」を解説します。Ruby on Railsは,すべてRubyで記述されたオープンソースのWebアプリケーション・フレームワークです。デンマークのDavid Heinemeier Hansson氏が2004年7月に公開しました。特徴は次の通りです。

  • Ruby on Railsを使えば,他のフレームワークに比べて少ないコード量でアプリケーションを作成できます。
  • Model(モデル),View (ビュー),Controller(コントローラ)パターン(以下,MVCパターン)を基本として作成されています。MVCパターンはいくつかあるオブジェクト指向デザイン・パターンの1つです。
  • Ruby on Railsは設計全体において「設定の上に規約」(CoC:Convention over Configuration)と「同じことを繰り返さない(DRY: Don’t Repeat Yourself)」の2つの哲学が貫かれています。
  • Ruby on Railsに用意された「設定の上に規約」に従ってプログラミングすることで飛躍的にプログラム量を減らせます。
  • Ruby on Railsのクラスを継承することにより,クラス定義のみで「同じことを繰り返さない」でデータベースの操作ができます。
  • データベースは,標準で「SQLite」が利用できますが,オープンソースの「MySQL」や「PostgreSQL」をはじめ「Oracle」にも対応しています。

MVCパターンついて

 Ruby on RailsのModelは,データベースの操作を担当するオブジェクトです。データベースのテーブル名と同じ名前のクラスを定義します。データベースからフィールド名やデータ型などのメタ情報を読み取るために,データベース情報をモデル・クラスに記述する必要はほとんどありません。他にモデルの振る舞いとして,実際のアプリケーションの動作であるビジネス・ロジックを記述します。

 Ruby on RailsのViewは,HTMLのテンプレートになります。Rubyでロジックも記述できますが,基本的にはHTMLの生成にかかわるものだけを記述します。

 Ruby on RailsのControllerは,ブラウザからのリクエストを受け付け,ModelとViewを連動させ,流れを制御する役割を果たします。

RubyGemsのインストール

 早速,Ruby on Railsをインストールしてみましょう。Ruby on Railをインストールするには,Rubyのパッケージ管理ツールである「RubyGems」を利用します。

 以下の手順では,最初にRubyGemsを,次にRuby on Railsをインストールしていきます。なお,RubyGemsやRuby on Railsを構成するライブラリは,「RubyForge」(http://rubyforge.org/)で公開されています。

 RubyGemsは,個別にライブラリをダウンロードするのではなく,依存関係があるライブラリを一度にRubyForgeからダウンロードしてインストールするのでとても便利です。ここでは,最新版のRubyGemsとRuby on Railsをインストールします。
 
 また,Ruby on RailsではデータベースとしてMySQLやPostgreSQLなど使い慣れたデータベースを利用できますが,MySQLやPostgreSQLのインストールや設定などは,他の書籍を参考にしてください。今回は簡単にインストールできる「SQLite 3」を利用します。

 RubyGemsのインストールは以下の手順となります。RubyForgeから「rubygems-1.3.4.tgz.」をダウンロードし,tgzファイルを展開後,「setup.rb」でRubyGemsをインストールします。

 ファイルをダウンロードして適当なディレクトリを作成しコマンドを実行してください。RubyGemsは「/usr/local/lib/ruby」以下にインストールされるのでroot権限が必要です。前回,Rubyを/usr/local以下にインストールしたのでPATH環境変数も,事前に設定しておきます。ここでは,紙面の都合上コマンドの出力は省略します。

# PATH=/usr/local/bin:${PATH};export PATH Enterキー
# wget http://rubyforge.org/frs/download.php/57643/rubygems-1.3.4.tgz Enterキー
# tar zxvf rubygems-1.3.4.tgz Enterキー
# cd rubygems-1.3.4 Enterキー
# ruby setup.rb Enterキー