第1回 Ruby on RailsによるWeb制作の基本的な流れ

2007/09/24

今回はあまり具体的な作業内容には立ち入らずに基本的な流れだけを説明します。例として、架空の企業サイトを制作することにしましょう。

最初にすることは、サイトの企画書や設計書をよく調べて、サイトを構成するページのデザインをいくつかのパターンに分類するという作業です。Railsで作るかどうかにかかわらず、これは常に必要な手順ですね。

例えば、プレスリリースやIRのページは一定の規則に従ったページデザインになっているはずです。これらをパターンとして認識し、整理してください。パターンの数が多ければ更にカテゴリーに分ける必要があるかもしれません。ただし、後で変更できるので、あまり厳密に考えない方がいいでしょう。

次に、それぞれのパターンに対して、URLがどのような形式になるかを決めます。

例えば、プレスリリースの一覧は /press/2007/index.html のように発表年がパスの中に含まれている形であるとか、個々の記事は /press/2007/0924a.html のように月日とアルファベット1文字でファイル名を作るとか、ルールを決めます。こうしたルールが制作開始の段階で決まっていない場合もありますし、リリース間際になって変更される可能性もありますが、とりあえず決めることが大切です。

では、作業開始です。

まず、Railsのアプリケーションを生成します。これは、要するに、新たなWebサイトのためのディレクトリ構造と幾つかの初期ファイルをあなたのコンピュータのハードディスクに作る、という作業です。コマンドをひとつ実行するだけですが、具体的には次回説明します。

次に、Webサーバを起動します。

ここで言う「Webサーバ」は、独立したコンピュータのことではありません。あなたのコンピュータ上で動いて、ブラウザと対話する単なるソフトウェアです。そして、ブラウザを開いて http://localhost:3000/ のようなURLをアドレスバーに打ち込んで、Webアプリケーションが動いていることを確認します。もちろん、この時点ではたいしたものは表示されません。

準備が整いましたので、Webページをひとつ作ってみましょう。

まず、あなたのいつもの方法でHTMLファイル、CSSファイル、画像ファイル等を作ります。DreamweaverなどのGUIアプリケーションで作っても、テキストエディタと画像編集ソフトウェアで作っても構いません。

できあがったら、HTMLファイルについては拡張子を rhtml に変更して、テンプレートを格納する専用のフォルダにコピーします。その他のファイルについては、静的ファイル専用のフォルダにコピーします。詳しくは連載の中で説明します。

ここまで済んだら、ブラウザで一度表示して、正しいフォルダにファイルがコピーされているかを確認してください。

さて、拡張子 rhtml のファイルはテンプレートファイルと呼ばれます。このファイルには重要なふたつの特徴があります。一つは、変数を埋め込むことができる、ということです。

古くからのプログラミング業界の慣習で「変数」と呼んでいますが、必ずしも「数」とは関係なくて、テンプレートファイルに埋め込まれるのは文章の断片などの「文字列」であるのが普通です。

この文字列を外部のデータファイルから読み込んだり、プログラムに作らせたりしてテンプレートに埋め込む、これがRuby on RailsによるWeb制作のポイントです。

テンプレートファイルのもう一つの特徴は、別のテンプレートファイルを内部に取り込むことができる、ということです。たいていWebページはいくつかの部品に分解できます。それらの部品(HTMLコードの断片)を別ファイルにして分離すると、メインのテンプレートファイルが簡潔になりますね。Ruby on Railsでは、テンプレートファイルに様々な変数を埋め込みますので、一つのテンプレートファイルがあまりに大きいと頭が混乱してきます。

小さく切り刻んで組み合わせる、これが第二のポイントです。

変数の作り方、テンプレートファイルの分割の仕方については、この連載の中でゆっくりと説明していきます。今回は、一足飛びに最後の手順へと進みましょう。

このWebサイトを最終的にリリースするためには、Webアプリケーションが表示しているすべてのページをHTMLファイルとして保存する必要があります。

この作業を私はキャプチャと呼んでいます。

Ruby on Rails自体にそういう機能はないのですが、あなたのコンピュータ上でWebサーバが動いているのですから、Webサイトをまるごとダウンロードするソフトウェアを使えば簡単です。私自身は、自作のRubyプログラムを使ってキャプチャしています。

しかし、一つ問題があります。標準的なRailsアプリケーションでは、すべてのページは拡張子のない単純な形で終わっています。これではうまくキャプチャできませんし、サイト内部のリンクもうまく機能しません。

ここで登場するのがRailsのルーティングという機能です。これを使えば、各ページのURLの形を自由自在に操れるので、動的に生成されたページのURLをあたかも静的なHTML文書のURLのように見せかけることが可能です。

もしWebデザイナーのあなたがRailsの何かに感動するとしたら、たぶんこのルーティング機能です。地味な機能ですが、本当に便利です。

あとは、Webサイトをキャプチャしてできたファイル群をまとめ、CD-ROM等に焼き付けたりFTPでアップロードしたりして顧客に納めるだけです。顧客から修正の依頼があれば、テンプレートファイル、データファイル、画像ファイル等を修正し、もう一度キャプチャして納品します。うまくテンプレートが切り分けられていれば、多数のページに渡るレイアウト変更も一瞬で終わることでしょう。

次回は、変数をテンプレートファイルに変数を埋め込む方法、そして、Ruby言語の代表的な「オブジェクト」である配列とハッシュについて説明します。