RoRで掲示板でも(2.x系) 1日目
最近まわりにRailsを勉強している人が多い。
よい本がないかと聞かれたら、今までは「RailsによるアジャイルWebアプリケーション開発」を薦めてきたのだが、あの本の問題点は情報が少し古い事だ。
調べてみると、他のチュートリアル本やウェブ上の資料もRails1.2系用に書かれているものが多く、2.x系のチュートリアルはかなり少ないことに気がついた。
というわけで、ほとんど役にはたたないかもしれないが、以前書いた「RoRで掲示板でも」の記事のRails2.x対応版を書いてみようかと思う。
プロジェクトの作成
rails mybbs
まずは、railsコマンドを使ってmybbsプロジェクトを作る。
Rails2.x系ではデフォルトのデータベースはmysqlではなくsqliteが選択される。
学習用にどちらがいいか、難しい問題ではあるがひとまず今回はsqliteをそのまま使用する。
なお、mysqlを使いたい場合は -d mysql オプションを指定すれば良い。
例:rails mybbs -d mysql
データベースの準備
sqliteを使う場合はデータベースは手動で用意しなくてよい。
従って今回は特に準備なし
とりあえず一旦起動してみる
前回はscaffoldを使ってアプリケーションを作ったが、今回はscaffoldは使用しない。
そのため、前回よりも若干道のりは長い。
そこで、一旦切りが良いところでサーバーを起動してみる。
プロジェクトのディレクトリにて、
ruby script/server
を実行した状態で、ブラウザでhttp://localhost:3000/を開く。
こんな画面が表示されれば、サーバーの起動は成功
サーバを起動する場合は、ruby script/serverを実行したウィンドウでCtrl + Cを押す。
必要なページを用意する
次に掲示板として使うのに必要なページを考える。
作りたい掲示板の内容によって必要なページは変わってくるが、今回はとりあえず下記のページを作る
- 新しく日記を書くページ(new.html)
- 新着記事を一覧で表示するページ(list.html)
Ruby on Railsでは、まずコントローラというものを作り、その上で必要なページ(アクションと呼ぶ)を実装していく。
イメージとしては、下記のような形を考えるとよいかもしれない。
- mybbsプロジェクト(サイト全体)
- メイン掲示板(コントローラ)
- 新しく記事を投稿するページ(アクション)
- 新着記事を一覧で表示するページ(アクション)
- リンク(コントローラ)
- よくいくサイト一覧ページ(アクション)
- お世話になっている方のサイト一覧ページ(アクション)
- ...
- メイン掲示板(コントローラ)
今回は、掲示板用のコントローラを作る。
名前はmainbbsにしよう。
ruby script/generate controllerメソッドを作ってコントローラを作る
その際、引数で作りたいページを指定すると、あわせて自動的に必要なファイルを生成してくれる
ruby script/generate controller mainbbs new list
ではこの状態で、もう一度サーバーを起動し直して、今度は
http://localhost:3000/mainbbs/new
と
http://localhost:3000/mainbbs/list
を開いてみる。
すると、自動生成されたページが開かれるはずだ。
予想できたかもしれないが、RailsアプリケーションにおけるURLの生成ルールは基本的には
http://サーバーのアドレス/コントローラ名/アクション名(ページ名)
となっている。