僕は発展途上技術者

コーポレートサイトっぽいものを Ruby on Rails で構築してみた

フリーランスとして働き始め、もうすぐ2年になろうとしています。


企業が会社案内のホームページを持つように、僕もこのブログとは別にホームページを作るべきだったのですが、やろうやろうと思いつつ、あまり乗り気がせず、そのままにしていました。


この夏体調を少し崩していた間、自分はいったい何をやりたいのか、など見つめ直す時間がありました。良い機会なので、その間に考えたことなどを反映させ、Ruby on Rails でコーポレートサイトっぽいもの(個人事業主なのでコーポレートではありませんが。。)を作ってみました。


» Champierre(シャンピエール) - ミッション


デザインは超シンプルでショボショボですが、機能的には結構満足いくものができたので、ポイントを簡単にですが以下にまとめておきます。


1. Ruby on Rails で作る


静的ページばかりだから HTML ベタ書きでもいいんじゃないかという気がしますが、ヘッダーやフッターなどどのページにも同じく表示されなくてはいけないパーツがあったり、ひとつのページのなかでも繰り返し登場する部分があったりするので、動的にページを作成できるようにしました。それが可能ならば、言語やフレームワークはなんでもいい、自分が得意なものを選んで使えばいいと思います。


Ruby on Rails、あるいはほかの言語 + フレームワークを習得中であれば、今後自分が一番良く使い、見ることになるホームページをその道具を使って作ってみるのが良いと思います。


2. Active Scaffold で管理画面を作成


サイトを作ったはいいけれども、更新されずに放置されてしまうというのが結構ありがちなパターン。そうならないよう、手軽に更新できる仕組みを作りました。


Page というモデルを作り、1ページを1オブジェクトに対応させて作ったので、ページ追加も編集もDBのデータをいじるだけ。管理画面は僕しかさわらないので、ActiveScaffoldを使ってサクッと作りました。


active_scaffold.png


管理画面には僕だけがアクセスできるよう、Rails 2.0 から手軽に実装できるようになったBasic認証と、アクセス元のIPアドレスをチェックするようにして、アクセス制限を設けました。


3. お問い合わせフォーム


» Champierre(シャンピエール) - お問い合わせ


メールアドレスを表示するだけでもよかったのですが、せっかくなので ActionMailer を使ってお問い合わせフォームを実装。この手軽さは Rails ならではかもしれません。


4. キャッシュ


動的にページ作成といっても、僕が管理画面で変更したあとはずっと同じページを表示するだけ。表示するたびにページを作成するとその分反応が遅くなってしまうので、Rails のページキャッシュの仕組みを使ってほぼすべてのページをキャッシュしました。


5. Capistrano で簡単デプロイ


繰り返しになりますが、サイトはいかに更新がしやすいかが大事だと思っています。コンテンツは管理画面から簡単に更新できるようにしましたが、そのほかの部分でもちょっとした修正や機能追加をしたいな、と思ったとき、少しでも手間がかかるとそれがおっくうになってしまいます。


FTPサーバーから該当ページのHTMLファイルをダウンロードしてきて、ローカルで修正、FTPサーバーにアップロードして戻す、という作業は数分でできますが、その数分が結構面倒に思えてきてしまいます。


Capistranoを使うことで、ローカルの開発環境で修正、動作確認、その後コマンド一発で変更を本番環境に反映させることができます。この便利さを知ったあとでは、Subversionによるバージョン管理とCapistranoを使ったデプロイなしの開発には戻れません。


以上、同じような簡単なサイトをサッと作りたいときに参考にしていただければ。。。


プロフィール

株式会社まちクエスト代表、つくる社LLC代表。

Scratchで楽しく学ぶ アート&サイエンスRaspberry Piではじめる どきどきプログラミングを書きました。

Amazonから図書館検索 Libron、iPhoneアプリ ひらがなゲーム かなぶん を作っています。

Email: webmaster at champierre dot com

Twitter @jishiha

最近のエントリー

アーカイブ