リレーションシップを設定する

資料のP.23を参考に、次はitemテーブルを追加。先のcategoryテーブルとの関係は「多対1」となるので、モデルにもその辺りを設定しておく必要がある。この辺はCakePHPと同じくHABTM(hasOne, hasMany, belongsTo, hasAndBelongsToMany)なのでそんなに悩まなくて済む・・・かな・・・?

class Item < ActiveRecord::Base
  # テーブルのリレーションシップ
  # この場合は 多対1(itemはcategoryに属する)
  belongs_to :category
  
  # 関連テーブルのバリデーションも実行するよ
  validates_associated :category

  # 入力範囲チェック
  validates_inclusion_of :priority,
                      :in => 1..5,
                      :message => "は 1〜5の間で指定して下さい"
  
  # 必須項目チェック
  validates_presence_of :description

  # 最大文字数チェック
  validates_length_of :description,
                    :maximum => 40
end