Ruby on Rails 3 で掲示板を作成しながら手順をならべていきます。
個人的なメモ。
目次
作成開始!
まずは土台となるアプリケーション作成。
rails new bbs -T -J -d mysql
作成されたディレクトリに移動。
cd bbs
データベースの設定
vi config/database.yml
passのところにMySQLのパスワードを入力(3箇所)。
rake db:create
サーバ起動と動作確認
rails server
http://IPアドレス:3000/
にアクセスし、「Welcome aboard」が表示されることを確認。
「About your application’s environment」をクリックすると、環境が表示される(エラーがでていないこと)。
プログラム作成
コントローラクラスの作成
rails generate controller messages
プログラムを書いていく
コントローラクラスの編集
vi app/controllers/messages_controller.rb
# coding: utf-8 class MessagesController < ApplicationController def index @msg = 'こんにちは!' end end
テンプレートファイルの作成
vi app/views/messages/index.html.erb
<%= @msg %>
ルーティング設定の定義
vi config/routes.rb
match ':controller(/:action(/:id(.:format)))'
http://IPアドレス:3000/messages(/index)
にアクセスすると、「こんにちは!」と表示されることが確認できる。
モデルの作成
モデルクラスの作成
rails generate model message name:string email:string title:string body:text image:string password:string
列名 | データ型 | 概要 |
---|---|---|
name | string | 名前 |
string | メールアドレス | |
title | string | タイトル |
body | text | 本文 |
image | string | イメージファイルのディレクトリ |
password | string | 編集/削除キー |
マイグレーションファイルの実行
rake db:migrate
テストデータの投入
vi test/fixtures/messages.yml
one: name: 上田次郎 email: ueda@trick.com title: トリック劇場版 body: テレビで初公開! image: test/image1.gif password: pass two: name: 山田奈緒子 email: yamada@trick.com title: 決めゼリフ body: まるっとお見通しだ! image: test/image2.gif password: testpass
そして以下のコマンドで、テーブルにデータが展開される。
rake db:fixtures:load FIXTURES=messages.yml
データベースクライアントを起動し、データが入っているか確認。
rails dbconsole
select * from messages;
messagesテーブルの内容が表示される。
exit
indexファイルを書き換える
messageテーブルの内容を表示させるようにする
vi app/controllers/messages_controller.rb
# coding: utf-8 class MessagesController < ApplicationController def index @messages = Message.all end end
vi app/views/messages/index.html.erb
<table> <tr> <th>名前</th><th>メールアドレス</th><th>タイトル</th> <th>本文</th><th>イメージ</th><th>編集/削除キー</th> </tr> <% @messages.each do |message| %> <tr> <td><%= message.name %></td> <td><%= message.email %></td> <td><%= message.title %></td> <td><%= message.body %></td> <td><%= message.image %></td> <td><%= message.password %></td> </tr> <% end %> </table>
ブラウザで確認
http://IPアドレス:3000/messages(/index)
にアクセスする。
テーブルの内容が表示された。