今月のベストセラー
「SEO業者」と「電解還元水の販売員」の共通点

Ruby on Rails: なぜActiveRecordが必要なのか?

 Railsの勉強がしばらくストップしてしまったので、今日はビデオを見てお勉強。Rails Envyの「ActiveRecord Tutorial」は長さも25分とちょうど良いし、「ActiveRecordとはなんぞや」を具体例を交えて簡潔に教えてくれるのでとても良い勉強になる。

 英語だが、冒頭の部分を乗り越えればあとはプログラミングの話なので、日本人にもそれほど難しくないはず。念のため、オープニングの部分のみ、超訳しておいた。

ActiveRecordのアイデアは、いったいどこから来たのか?

まずは"Active Record"の意味から (ActiveRecordではない点に注意)
 "Active Record"とは、デザイン・パターンの一つ。
 どうやってデータベースにアクセスするか?
  SQLにプログラムから直接アクセスする方法もあるが...ちょっと不便
 データベースのテーブルをオブジェクトにマップすればいい
 というのが"Active Record"の考え方
 このデザイン・パターンを、
  PHPに応用したのがCakePHP
  Rubyに応用したのがActiveRecord

つまり、言い換えれば「ActiveRecordはRubyをSQLに翻訳する仕組み」。

Rubyで u = User.find(1) が、
SQLでは、 SELECT FROM users WHERE (users.`id` = 1) となる

Ruby: u.first_name = "Joe"
SQL: (まだ何もしない)
Ruby: u.save
SQL: UPDATE users SET `first_name` = 'Joe' WHERE `id` = 1

Ruby: u = User.find_by_first_name("Joe")
SQL: SELECT * FROM users WHERE (users.`first_name` = 'Joe') LIMIT 1

 しかし、こんなハイクオリティなものが、ちょっとググッただけで簡単に見つかるとは本当に良い時代になったものだ。

【追記】ちなみに、同じ人たちが「Ruby vs. PHP」の論争を「Mac vs. PC」CMのパロディにしたビデオを作っていることを発見したので、ここに貼付けておく。

Comments

Verify your Comment

Previewing your Comment

This is only a preview. Your comment has not yet been posted.

Working...
Your comment could not be posted. Error type:
Your comment has been posted. Post another comment

The letters and numbers you entered did not match the image. Please try again.

As a final step before posting your comment, enter the letters and numbers you see in the image below. This prevents automated programs from posting comments.

Having trouble reading this image? View an alternate.

Working...

Post a comment

Your Information

(Name is required. Email address will not be displayed with the comment.)