Ruby on Rails を使ってひとりでサービスを作ってみよう

こんにちは。
Ruby(とRails)を担当している石原です。
Ruby on Rails を使ってなにか Web のサービスを作っていく過程を実況中継しつつ、毎回いくつか役に立つ Tips を盛りこんでいけたらと考えています。
ひとりでサービスを作ってみよう
Web のサービスを一人で作ることをおすすめします。
一人で作ると何がいいか?
サービスを作るためのすべてのスキル、つまりインフラ、プログラミング、デザインはもとより、企画、宣伝、サポート、などの力も身につけることができます。
自分で全部好きなように決めることができて楽しいですし、いざリリースして、使ってくれたユーザーからの反応が得られたときには変えがたい喜びが得られます。
もしこのブログがひとりでサービスを作るきっかけになってくれたらうれしい限りです。リリースの暁にはぜひご報告ください。つくるぶには作品のお披露目コーナーがあります。
僕もひと月ワンサービス(最近さぼってしまっていますが。。)を宣言して、いくつか作ってきました。ぜひとも、ひとりサービス仲間になりましょう。
さて、そのサービスを作る道具をお持ちでしょうか?
もしまだなら、筆者が断然おすすめするのが Ruby on Rails です。こんなサービス作りたいというアイデアをサクッと形にできる最も開発効率が高い道具だと思っています。
15分でブログアプリケーションを作るというスクリーンキャストがその開発スピードをアピールし、Rails を一躍有名にしました。
すでに PHP や Perl など他の道具を持っているなら、これからの説明では Ruby on Rails に関連する部分を自分の得意とする言語に読みかえてください。プログラミング言語に関わらないサービス作りの話も織りまぜていこうと思っているので、よかったら参考にしてみてください。そして言語特有の話題については、他のガイドのみなさんがそれぞれお届けしますから、そちらもどうぞよろしくお願いいたします。
サービス作りの教科書 「Getting Real」
では、さっそく作り始めましょう、と行きたいところなのですが、その前にぜひ目を通しておいていただきたいのが、
Getting Real(日本語版はこちら)
という本です。
本といっても Web 上で無料で読むことができます。
シンプルで使いやすい便利サービスをいくつか提供していて、Ruby on Rails の開発元でもある 37signals がそのノウハウを惜しげもなく披露しています。
これを僕は、サービス作りの教科書と呼んでいるのですが、気にいったところからで良いのでぜひ読んでみてください。どの章から読んでもきっと目からウロコだと思います。
教科書ですから、今後このブログでも何回か引用しながら、では実際のケースはどうなのかといった話もしていきたいと考えています。
まずはログイン機能
前置きがすっかり長くなってしまいました。それでは始めます。
Ruby on Rails の環境を整えて。。といった話は省きます。必要なら Rubyまとめノートを参照してください。環境構築系の情報へのリンクは「情報・Tips」の項目あたりにまとめてあります。
最初ですからできるだけ端折らないで行きます。
rails alpha
で rails プロジェクトを作成します。プロジェクト名はぜひかっこいい名前をつけましょう。
次に
mysql -u root
で mysql にログインし、
mysql> create database alpha_development;
でデータベースを作成します。ちなみに筆者の環境は Ubuntu です。
白状しますと、まだ何を作るのか決まっていません。とりあえずどんなサービスにも必要そうなログインやユーザー登録の機能を作るとします。
Ruby on Rails には Acts as Authenticated という便利なプラグインがあります。
これをインストールしてサクッと作ってしまいます。
script/plugin install http://svn.techno-weenie.net/projects/plugins/acts_as_authenticated
でインストール、
script/generate authenticated user account
を実行すると、マイグレーションスクリプトを始め、モデル・コントローラー・ビューなど必要なファイルを生成してくれます。
rake db:migrate
でマイグレーションを実行したら、
script/server
でサーバーを起動します。
http://localhost:3000/account/index
にアクセスすれば、以下のとおりユーザー登録画面ができあがっています。
あっという間ですね。
ためしに登録してみましょう。必要な情報を入力し、Sign up を押すと
In the Caboose.
というタイトルの謎のページに遷移します。
ご心配なく。これはサンプルのページでちゃんとログインできていることを示しています。
http://localhost:3000/account/logout
でログアウト。
http://localhost:3000/account/login
から、作ったばかりのアカウントでログインすれば、さきほどのサンプルページへ。
もう一度ログアウトしてみて、パスワードをわざと間違えてみてください。サンプルのページへは遷移せずログイン画面にとどまったままになるはずですから、ちゃんと認証機能が働いています。
次回はメールでの認証、パスワードリマインダーなどを追加していきます。
コメント (4)
「Getting Real」いいですよね、僕も大好きです(まだ、RoR使いではありませんが・・・)。あと、RoRとはあまり関係ないですけど、37signalsの「Signal vs. Noise」もよく読んでるブログです。
連載がんばって下さい!
投稿者: yuki | 2007年10月19日 06:21
yuki さん、
コメントありがとうございます。
やっぱり一人でサービスを作っている人たちで Getting Real を読んでいる人は多いですね。
投稿者: junya | 2007年10月20日 01:08
おや、マジでUbuntuに乗り換えたんですか。
どうですか使い心地は?今度聞かせてください。
投稿者: ryu | 2007年10月22日 23:51
Ubuntu なかなか快適ですよ。
Linux とは思えないくらいデスクトップ環境が整っています。
投稿者: junya | 2007年11月03日 22:53