- 2008-04-23 (水) 0:07
- 未分類
久しぶりにブログのネタが枯渇したので、Rails のお勉強。今回は掲示板を作ります。データベースの出し入れとデータの表示なら、掲示板アプリが一番わかりやすいかなー、と思います。慣れた人なら、ほんと5分でできるカモ。OSはWindowsを想定しています。また、用語は噛み砕いているので、必ずしも正確じゃないです。
1. Railsアプリの作成
とりあえず、Railsをインストールしてください。まずはそこから。
www.be-styles.jp – Windows + ruby + sqlite3 にRailsを入れるためのメモ
アプリ名は「daruboard」にしマス。僕の場合、C:\rails 以下に作るのが好きなので、コマンドプロンプトでそこに移動。
> cd C:\rails
> rails daruboard
すると、C:\rails\daruboard にファイル群が生成されます。エクスプローラでいろいろ覗いてみると楽しいと思いますが、結構な数のファイルが作成されるのでびっくりな人がいるかもしれません。
> cd daruboard
で戦場に飛び込み、戦闘開始デス。以降、カレントディレクトリを c:\rails\daruboard として話を進めることにします。
2. Scaffold !
掲示板にはとりあえず、title(題名) と body(本文)があればいいかな。この二つのデータをPost(投稿)と呼ぶことにします。
Railsの呪文 scaffold はとても強力で、データベース(Model)、入出力関数(Controller)、表示関係のHTML(View)の3要素を一発で生成できます。ここでは、Post というモデルを作ります。その中には、文字列型のデータ、title と body が含まれます。(Post は単数形だよ!お約束。)
> ruby script\generate scaffold Post title:string body:text
titleはstring型、bodyも文字列だけど、たくさん格納したいのでtext型を指定しました。他に、integer, binary などなどを指定できますが、それらはおいおい扱うことにします。
「ruby script\generate (呪文)」はこれから頻繁に用いるので覚えておきましょう。TABキーをうまく使うと早く入力できますネ。
(※ 書き込んだ日時も記録しておきたい!と思う人もいるかも知れませんが、Railsは賢いので、勝手に記録してくれます。特に指定しない限り、 id, created_at, updated_at というフィールドが自動で追加され、記録される仕組みです。Rails にはこうした隠れたお約束がいっぱいありますが、逆にいえば、これらのお約束をうまく利用すれば、かなりの部分をRailsが勝手にやってくれます。便利!)
3. rake
scaffold とは「足場」という意味(「断頭台」という意味もあるらしいけど(=△=;)で、本当に枠組みしかできていません。枠組みに従ったデータベースの実体を作成するために、もうひとつ呪文を唱えます。
> rake db:migrate
とりあえず、今はこんなもんだと思ってくださいな。次回にまたちょっと違う使い方をするので、それをみれば理解が深まると思います。ちなみに、データベースの本体は、C:\rails\daruboard\db\development.sqlite3 にあります。中身を見ることもできます。
www.be-styles.jp – SQLiteのGUIツール
(※ 説明を端折ってますが、Railsにはdevelopment、test、productionの3モードがあり、今回は当然、開発中なのでdevelopmentモードです。)
4. 実行
では、一度実行してみましょう。Rails にはサーバーが同梱されていて、簡単に呼び出すことができます。
> ruby script\server
なにも引数を与えなければ、ポート3000番でHTTPサーバーが起動するので、Webブラウザで
http://localhost:3000/
にアクセスしてみましょう。以下のようになれば成功。
さっき作った Post にアクセスするためには http://localhost:3000/posts を開きます。(複数形ですよ!お約束というやつです)
新しい post を作ったり(Create)、編集したり(Update)、削除したり(Delete)できるはずです。基本的な流れはこんな感じデス。
5. 次回予告
コレでは単なるメモ書きにしか使えないばかりか、誰でも書き放題なうえ、誰が書いたかもナゾという、とてもじゃないけど掲示板と呼べた代物じゃないです。ということで、次回は「認証」の実装です。併せて、plugin の導入もお勉強する予定。
- Newer: 24気筒のバイクはエンジンをかけるだけで大変そう…
- Older: インディもてぎの覇者が超美人な件について


