図1●MVC(Model-View-Controller)の概念
図1●MVC(Model-View-Controller)の概念
[画像のクリックで拡大表示]

 Ruby on Rails(以下、Rails)は、Ruby言語で利用できるMVCモデルに基づいたWebアプリケーションフレームワーク(以降、フレームワーク)です。MVC(Model-View-Controller)とは、アプリケーションをその役割ごとにModel(ビジネスロジック)、View(レイアウト)、Controller(ビジネスロジックの呼び出しと、その結果のViewへの引き渡し)とに、明確に分離しようという設計スタイルのことです(図1)。このスタイル自体はRails登場以前からありましたが、Railsではそれに加えて、

  • DRY(Don’t Repeat Yourself)
     同じ記述を繰り返さない
  • CoC(Convention over Configuration)
     設定よりも規約
という思想に基づいて、よりシンプルな開発の手法を提唱したことから、多くの人の支持を集めました。後にはCakePHP/symfony(共にPHP)、Catalyst(Perl)、ASP.NET MVC(.NET Framework)など様々なフレームワークがRailsの影響を色濃く受けていることからも、Railsの先進性がうかがい知れます。つまり、Railsを学ぶことは、その他のフレームワークを学ぶ上でも強い基盤になり得ます。

図2●作成する勤務情報管理アプリの完成イメージ
図2●作成する勤務情報管理アプリの完成イメージ
[画像のクリックで拡大表示]

 本特集では、2010年8月末に約3年ぶりにバージョンアップを果たしたRails 3環境を前提に、図2のような勤務情報管理アプリを作成します。最近ではネットワークの充実により、サテライトオフィスや在宅などでの遠隔勤務はよくある勤務形態になってきました。そして、遠隔勤務では同じ部署のメンバーの所在を把握していることは、最低限欠かせません。この勤務情報管理アプリでは、そんな遠隔勤務を想定して、ユーザーが自分の勤務状況を登録し、それを同じ部署の人間が確認できるような機能を提供します。

 勤務情報管理アプリを開発していく過程で、Ruby1.9とRails 3でアプリケーションを構築するための基本的な流れを3回にわけて学んでいきましょう。

Ruby on Rails 3の構成

図3●Ruby on Rails 3の構成
図3●Ruby on Rails 3の構成
[画像のクリックで拡大表示]

 「そもそもRails 3ってどんな機能を持っているの?」という人のために、最初にRails 3に含まれるコンポーネントをまとめておきましょう(図3)。図を見てもわかるようにRails 3は、Webアプリケーションの開発に必要な機能をひとまとめに提供するフルスタック(全部入り)なフレームワークです。

 とりあえず必要な機能はそろっているため、アプリケーション開発に当たって、Railsそのもののインストールさえ行えば、まずは開発を進められますし、最初から一つなわけですから、コンポーネント間での不整合も心配しなくて済みます。

 また、Rails 3になって“Modularity”(モジュール志向)が強化されたことから、お仕着せの機能を利用するだけでなく、必要に応じて、より目的に合ったコンポーネントへの差し替えが簡単に行えるようになっています。