バリデーションの種類
こんにちは!
今回の記事はバリデーションについて
あれこれアウトプットしていこうと思います!
僕の理解した範囲のバリデーションについて
記述していこうと思います!
バリデーションとは?
バリデーションとはデータを登録する際に
一定の制約をかけることを言います。
*新規登録ユーザー名が空のデータで登録されるのを防ぐ。
*新規パスワード登録の際に最低6文字以上は入力を強制させる。
といった例が挙げられます。
バリデーションを設定する際はvalidatesメソッドを使用します。
記述方法は以下のとおりです。
validates :カラムの種類, バリデーションの種類
validates :name, presence: true
基本的にデータの登録などテーブルとの
やり取りに関する情報は
モデルを使用します。
コントローラーはモデルの機能を利用して処理を
呼ぶだけの簡単な処理を記述します。
バリデーションの種類
validates :name, presence: true
validates :name, presence: true
presence: tureは名前が空欄だとデータの登録ができない
というバリデーションです。空欄のまま登録を試みるとエラーが起こります。
validates :name, absence: true
absence: trueはpresence: trueの逆で
名前が空欄であるというバリデーションです。
validates :name, acceptance: true,
acceptance: trueはモデルにチェックボックスをチェックしたかを
確認させるバリデーションです。
利用規約の同意などでこの記述が用いられます。
validates :name, presence: true length: { maximum: 6 }
lengthを指定することで指定した属性の文字数制限をチェックすることができます。
length: { maximum: 6 }の通り、6文字以内の文字制限があるため、
7文字以上記述しようとするとエラーが発生します。
validates :name, presence: true length: { minimum: 6 }
逆にこちらは7文字以上は記述しなければいけません。
validates :email, uniqueness: true
emailは一意となるようにRails側でバリデーションをかけることができます。
バリデーションの共通オプション
validates :name, presence: true on: :create
validates :name, presence: true on: :create
onオプションはバリデーション実行のタイミングを設定できます。
on: :createを指定することでレコードに新規作成時に
バリデーションが行われます。
validates :name, length: { maximum: 6 }, allow_blank: true
allow_blank: trueは値が空の場合にバリデーションを実行します。
この記述で、値が空の場合と7文字以内でデータを登録しようとすると
エラーを返されます。
validates :email, format: { with: /\A[a-zA-Z]+\z/,
message: "英文字のみが使用できます" }
messageオプションを使用するとバリデーション失敗時にエラ〜メッセージを
表示することができます。
また、formatはwithオプションを指定した正規表現と一致するかどうかを調べます。
Author And Source
この問題について(バリデーションの種類), 我々は、より多くの情報をここで見つけました https://qiita.com/hayatoganbaru/items/159eb1218271fbbe3134著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .