目次へ

1. Ruby on Railsとは

1.1 Ruby on Railsとは

Ruby on Rails(以下Rails)は、MVCアーキテクチャに基づいたWebアプリケーションフレームワークです。
2004年にデンマークのDavid Heinemeier Hansson氏によって最初のバージョンが公開されて以来、開発者に人気のあるフレームワークです。

1.2 設計理念

Railsには、設計理念として、以下の3つがあります。

1. CoC(Convention over Configuration)
和訳すると「設定より規約」。従来のフレームワークのように設定を大量に記述するのではなく、規約にのっとってプログラミングすることで、余計なプログラミングや設定を省くことができます。
例えば、社員クラスを「Employee」とすれば、社員情報を格納するデータベースは複数形である「employees」という名前にします。
この規約にのっとることで、EmployeeクラスとemployeesテーブルのマッピングはRailsで自動的に行うので、開発者はクラスとテーブルを関連付ける設定を記述する必要はありません。
開発者はビジネスロジックなどの本来やるべき部分の開発に、注力することができます。

2. DRY(Don’t Repeat Yourself)
「同じことを繰り返さない」という考え方です。あらゆる情報について、様々な個所に複数記述するのではなく、1か所に記述します。
それにより、変更が生じた際に何か所もコードを修正することがなくなります。

3. REST(Representational State Transfer)
RESTとはWebアプリケーションなどにおける設計概念の一つで、すべてのリソースに一意の識別子(URI)をつけ、そのリソースに対して動作を決めてアクセスします。
Railsでの具体例を挙げると、1番の商品というリソースを表す「/products/1」というURIに対して、HTTPメソッドのGETを使うことで、1番の商品を表示します。
同じURLでHTTPメソッドのPUTを使うことで、1番の商品情報の更新、HTTPメソッドのDELETEを使うことで、1番の商品を削除できます。
RESTの概念にのっとったシステムは、RESTfulといわれます。もちろん、RailsもRESTfulです。

筆者は初めてRailsを使用したとき、ほとんどコードを書くことなく簡単なCRUDシステムができたことに感動しました。
それまでStrutsなど、設定を多く行うフレームワークを利用していたので、設定の煩わしさから解放され、開発効率が上がることも実感できました。

1.3 MVCアーキテクチャ

Railsは、MVCアーキテクチャに基づいています。
ControllerにあたるのがAction Controller、ViewにあたるのはAction View(この2つを合わせて、Action Packといいます)、Modelの役割のうち、データの保持はActive Recordというコンポーネントが担当しています。
大まかな処理の流れは以下の通りです。

  1. ユーザからのリクエストがあると、該当のAction Controllerが呼び出されます。
  2. Action Controllerはリクエストに応じて、適切なActive Recordを呼びだします。
  3. Active Recordは、データベースからデータの参照、更新などを行います。
  4. Action Controllerは画面表示を行うため、Action Viewを呼び出します。
  5. Action Viewでは、表示を行います。その際必要に応じて、Active Record内のデータを参照します。


では、Railsで作成した顧客管理システムで、顧客を新規登録する場合の処理の例を上げてみます。
ここでは、それぞれ以下の名前でクラスなどを作成します。
 ○ リクエストするURL:http://アプリケーションのドメイン/customers/
 ○ Action Controller:CustomerControllerクラス
 ○ Active Record:Customerクラス
 ○ Action View :index.html.erb
 ○ データベーステーブル名:customers

  1. ユーザがリクエストすると、CustomerControllerが呼び出されます。
  2. CustomerControllerでは、顧客一覧を取得するため、Customerを呼びだします。
  3. Customerでは、customersテーブルからデータを取得し、Customerオブジェクトに格納します。
  4. Customerでの処理が終わると、CustomerControllerに戻り、顧客一覧を表示する画面であるindex.html.erbを呼び出します。
  5. index.html.erbでは、Customerオブジェクトに格納されているデータを参照して、画面表示を行います。

これらの処理のほとんどは、規約にのっとって作成していれば、Railsが暗黙のうちに実行します。

1.4 ORマッパー

Active Recordは、ORマッパーです。つまり、Active Recordクラスがデータベースのテーブルに、オブジェクトがレコードに、オブジェクトの属性が各レコードの列に当たります。
ORマッパーでは、クラスとテーブルを紐づける設定ファイルが必要となることが多いですが、Railsでは前述のとおり、規約に従うことで、自動的にテーブルとクラスの紐付を行うことができます。

↑このページの先頭へ

こちらもチェック!

PR
  • XMLDB.jp