掲示板を作ってみる・その2【モデルを作る パート1】
掲示板を作ってみる・その1【何を作るの?】
掲示板を作ってみる・その2【モデルを作る パート1】
掲示板を作ってみる・その3【モデルを作る パート2】
掲示板を作ってみる・その4【ルーティングを考える】
掲示板を作ってみる・その5【コントローラを生成】
掲示板を作ってみる・その6【ヘルパを作る】
掲示板を作ってみる・その7【スレッド用コントローラを編集】
掲示板を作ってみる・その8【レス用コントローラを編集】
掲示板を作ってみる・その9【レイアウトファイルとスタイルシートファイルを作成】
掲示板を作ってみる・その10【スレッド用のビューファイルを作成】
掲示板を作ってみる・その11【レス用のビューファイルを作成】
掲示板を作ってみる・その12【ruby-gettext で日本語化】
さてさて、スレッドとレスのモデルをそれぞれ作りたいと思います。
スレとレスって紛らわしいんですが、まあしゃあないわな。
スレッドモデル
・スレタイ
・アゲた日時
・作成日時&更新日時
レスモデル
・スレッド番号
・レス番号
・名前
・メールアドレス
・内容
・IPアドレス(IDをつくるのに必要)
・作成日付&更新日付
を作りたいと思います。
で、スレッドモデルは script/generate model Thread ... としてしまって私はハマりました。
Thread クラスという既存のクラスとごっちゃになって訳の分からないエラーが出てしまうのでした。
と言うわけで、まだ使われていなさそうな Topic という名前のクラスにしておきます。
# cd myapp
# script/generate model Topic title:string age_time:timestamp
レスモデルは Post クラスにします。
# script/generate model Post topic:references res_no:integer name:string email:string content:string ip_address:string
レスは「スレッド番号」と「レス番号」で一意なので、インデックスもついでに付けておきます。
db/migrate/ほにゃらら_create_posts.rb
class CreatePosts < ActiveRecord::Migration
def self.up
create_table :posts do |t|
t.references :topic
t.integer :res_no
t.string :name
t.string :email
t.text :content
t.string :ip_address
t.timestamps
end
add_index :posts, [:topic_id, :res_no], :unique => true
end
def self.down
drop_table :posts
end
end
今回は、SQLite3 ですので次の手順は要らないのですが、MySQL やら PostgreSQL やらの場合は、次のコマンドを打って開発用・テスト用・本番用 DB を作成しちゃいましょう。
# rake db:create:all
では、スレッドテーブル(topics)とレステーブル(posts)をデータベースの中に作成します。
# rake db:migrate
豆知識:道中で DB やらテーブルやら訳が分からなくなってとにかく元に戻したくなった場合は、
rake db:rollback
rake db:reset
rake db:drop:all
あたりが役に立つかもしれません。
おしまい。次回へ続く
【広告】