【Ruby on Rails】バリデーションについて【学習記録3】
2013.10.19
今回はバリデーションまわりの勉強。代表的なバリデーションについて以下にまとめてみた。
必須項目チェック
まずは一番基本、必須項目チェック。必須項目の場合は「presence」という属性を「true」にしてあげる。
validates :column, presence: true
create時のみ、もしくはupdate時のみ必須にしたい場合は以下のように記述する。
validates :column, presence: { on: :create } # create時のみ必須 validates :column, presence: { on: :update } #update時のみ必須
長さチェック
長さチェックの場合は length を使用。最小の場合は minimum, 最大の場合は maximum を設定。
validates :column, length: { minimum: 10, maximum: 50 } # 10 ~ 50 文字
空欄の場合はチェックを行わない…というようにしたい場合は「allow_blank」属性に true を指定。
validates :column, length: { minimum: 10, allow_blank: true }
正規表現
正規表現でのバリデーションをかける場合は format を使用する。
validates :column, format: { with: /正規表現/, message: "エラーの時の文言" }
範囲
範囲を指定する場合は inclusion を使用し、以下のように 「in」に範囲オブジェクトを渡す。
validates :column, inclusion: { in: (0..100) } # 1 ~ 100の範囲内かどうか
チェックされているかどうか
これは「利用規約に同意」とかで結構使いそうな感じ。これには「acceptance」を使用。
validates :column, acceptance: true # チェックがついていればOK
他にも色々あるけれど、所感としてよく使うのは上に挙げたものかな。
上記に挙げたもの以外のバリデーションについては 実際にRailsで簡単なアプリケーションをつくっていく中で追々書いていきたい。
Written by Nisei Kimura ( 木村 仁星 )