0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【Rails】バリデーションをかける

Posted at

バリデーションとは

テーブルに格納するデータに制限を設けること。
具体的に使用する場面の例としては、

  • 会員登録においてパスワードはn文字以上でなくてはならない
  • 会員登録においてメールアドレスは既存のアカウントと重複してはならない
  • 投稿においてタイトルは必須なので空は受け付けない

等の要望を実現するもの。

よく使いすぎるバリデーションの種類

バリデーションの種類を少しだけ紹介。
自分が色々経験積んだらまた追加していくなり別記事にまとめるなりするつもり。

  • データが存在するかどうか

    入力必須項目かどうか。
presence: true
  • データが一意かどうか

    既存のデータと重複する内容ではないか。
uniqueness: true
  • 文字数制限

    「n文字以上」や「n文字以下」といった制限を加える。
# 8文字以上
length: {minimum: 8}
# 20文字以下
length: {maximum: 20}

バリデーションをかけてみる

制限をかけたいデータが所属するテーブルに結びついたモデルファイルに処理を記述する。
ユーザーのパスワードに制限を加えたい場合、そのパスワードはUsersテーブルに格納されるので
app/models/user.rbに記述することになる。

validates :カラム名, {バリデーション名: [制限をかけるかどうかをtrue or falseで]} 

# 例 nameカラムに空を受け付けないバリデーションをかける
validates :name, {presence: true}
# 例 1つのカラムにバリデーションを複数かける
validates :email, {presence: true, uniqueness: true}
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?