目的
- Ruby on RailsでTwitterのような投稿ができるアプリケーションを作成した際、「空欄で投稿できないようにする」や「投稿文字数制限」を行う方法を知る
押さえるポイント
- バリデーション処理を記載することで対応する。
- バリデーション処理はモデルファイルに記載する。
書き方の例
- 本記載は検証を行いたいカラムが存在するテーブルのモデルファイルに記載する。
- 下記にバリデーションによりカラムのデータ検証を行う方法を記載する。
validates :検証するカラム名, {検証内容}
- 同じカラムに対する検証なら、まとめて記載することができる。
- 下記にバリデーションによりカラムのデータを複数の検証項目で検証するときの方法を記載する。
validates :検証するカラム名, {検証内容1, 検証内容2}
より具体的な例
- 投稿内容がcontentカラムに格納される際に空の投稿は行えないように検証する。
- 下記に前述の内容の処理を記載する。
validates :content, {presence: true}
- 投稿内容が140文字以下である場合のみ投稿を行えるようにする。
- 下記に前述の内容の処理を記載する。
validates :content, {lengh: {maximum: 140}}
- 前述の二つのバリデーションの検証内容を一つにまとめて記載する。
- 下記に前述の内容の処理を記載する。
validates :content, {presence: true, lengh: {maximum: 140}}