Rails, Ruby

非エンジニアにRails2.0を説明する -2

2008/01/17

前回の続きです。

Ruby on Railsは、その名の通りRubyというプログラミング言語のフレームワークで、Railsと略されてよばれています。Railsの実体はいくつかのライブラリの集まりです。

ちなみにライブラリとは、

ある目的や規則に沿ってまとめられたソフトウェア部品の集合体のこと。「複数のソフトウェア部品をまとめた」ものであってもそのまとめ方が無目的・無規則な場合は、ライブラリと呼ぶにはふさわしくない。(はてなキーワード

という意味です。

このライブラリがあると、プログラムが楽になります。たとえばデータベースにデータを保存したいと思ったときには、SQL文というものを書かなくてはなりませんが、ライブラリがあると楽に書くことができます。具体的には後ほど例を出しますね。

Railsはざっくり言って下記のライブラリで構成されています。

  • メール担当 : ActionMailer
  • 縁の下担当 : ActionPack
  • データベース担当 : ActiveRecord
  • ActiveResource
  • 便利屋担当 : ActiveSupport

引用部分に「ある目的・規則」とありますが、もちろんこれらのライブラリもそれぞれ目的を持っています。

※わかりやすく説明しようとしているので、正確さを欠いている部分がありますが、そのようなものだという認識を持っていただくためですので、ご了承くださいー

メール担当 : ActionMailer

前も紹介したのですが、ActionMailerとはメールを操作するためのライブラリです。

ウェブアプリのなかでユーザ登録完了メールを送信したり、メールを受け取ってなにか処理をしたりするものがありますが、このActionMailerを使うことによって、より手軽にメールを扱えるようになります。

参考URL

http://wota.jp/ac/?date=20050731

縁の下担当:ActionPack

ActionPackとはRailsでつくるウェブアプリの基本部分を担っています。このライブラリは大きく二つに分かれています(参考URL参照)。

ActionController

ブラウザからのリクエストを受け取って、それを処理して、レスポンスを返す。これが Web アプリの基本。例えば http://my.shop.com/store/add_to_cart/123 という URL にリクエストしたとしよう。すると StoreController クラスの add_to_cart メソッドが呼び出される。このときパラメータ id=123 が一緒に渡される。(中略)
このように URL を解析してアクションメソッドを呼び出してレスポンスを返すことが ActionPack の大事な仕事その一。

クラス、メソッド、という言葉が出てきますが、ここでは気にしないでください。ActionPackが http://my.shop.com/store/add_to_cart/123 というURLを解析してくれて、決められた機能を実行してくれるのです。

ActionView

ActionPack の大事な仕事その二はテンプレートを元にレスポンスを作ること。このうち、テンプレートを作成するのに役立つ機能が ActionView としてまとめられている。
Rails では ERB で HTML テンプレートを書く。このテンプレートを書きやすくするのが ActionView の仕事。

ここでのテンプレートは、ブログの「テンプレート」とほとんど同じものです。ActionViewとはあのテンプレートを書きやすくするためのものだと思ってください。たとえば、HTMLのformタグを書きやすくしたり、とかですね。

参考URL

http://jp.rubyist.net/magazine/?0008-RubyOnRails

データベース担当 : ActiveRecord

ActionMailer同様、これも前に触れたライブラリです。ActiveRecordはDBの操作を行うライブラリです。

たとえば、fruits(フルーツ)というテーブルがあるとして、そこに「name(名前)」と「price(値段)」があるとします。ここに下記のようにスイカが2800円であるというデータをいれたいとします。

ID 名前 値段
1 スイカ 2800

DBにデータを追加するとき、通常はSQL文というものでデータを入れていきます。

INSERT INTO fruits (name, price) VALUES ('スイカ', 2800);

ActiveRecordを使うと、これが

fruit = Fruit.new
fruit.name = "スイカ"
fruit.price = 2800
fruit.save

となるんです。とても冗長に見えるかもしれませんが、2行目などは「フルーツ」の「名前」は「スイカ」と、とても直感的にわかる書き方になっています。もちろんActiveRecordを使って一行で書くこともできます。

参考URL

http://jp.rubyist.net/magazine/?0006-RubyOnRails

ActiveResource

これは飛ばします。。

便利屋担当 : ActiveSupport

ActiveSupportとは、Railsを便利にするさまざまなユーティリティクラスと標準ライブラリの拡張を集めたものです。

たとえば、Rubyでは月末の日時を返すメソッド(機能)は備わっていないのですが、ActiveSupportの「at_end_of_month」を使うと、月末の日付を返してくれます。

time = Time.now
time.at_end_of_month

非常に細かい例ですが、直感的にわかりやすい機能がActiveSupportにはたくさん実装されています。

参考URL

http://wiki.fdiary.net/rails/?ActiveSupport
http://d.hatena.ne.jp/walf443/20060605/1149514808


related posts


tags

, , , , ,


have your say

Add your comment below, or trackback from your own site. Subscribe to these comments.

Be nice. Keep it clean. Stay on topic. No spam.

You can use these tags:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="">

:

:


« 非エンジニアにRails2.0を説明する -1
» NIKEiD JASARI