##初めに
####なぜこの記事を書きたかったのか
modelでなにをするかまとめたかったから
####環境
・Macbook Air (Retina, 13-inch,2019)
・プロセッサ 1.6GHz デュアルコアIntel Core i5
・メモリ 8GB 2133 Mhz LPDDR3
・MacOS Big Sur バージョン 11.5.2
####記事の目次
1)Validatesとは
2)できることリスト+使い方
3)最後に
##Validatesとは
イメージは、controller内で設定した内容にルールをつけてDATABASEと情報のやり取りができる機能を持つ。
##条件が複数ある場合におすすめな書き方!
[+α]with_option内に別のwith_optionを設定しても大丈夫!
with_options ルール: true do
validates :条件, :条件, :条件, :条件
end
##できることリスト+使い方
指定した条件の有無を設定する
[when?]=ユーザに記入してほしいものは必須条件にするとか。
validates :条件, :条件, presence: true
指定した条件の完了後にメッセージを出力させる
[when?]=新規登録/ログイン時にユーザの記入事項に誤りがあればエラー文を、ないときは”成功!”と表示させれる
validates :条件, ルール: {message: "出力したい文章"}
データベースで保存するものを重複しないようにできる
[when?]=会社名やメールアドレスの重複を防げれる
validates :条件, uniqueness: true, on: :アクション
**新規登録/ログイン時にemailを保存するときに重複しないようにするの例
記入事項を数字だと限定する
[when?]=誕生日や値段の記入時に数字以外の記入をぺけにすることができる
validates :条件, numericality: true
validates :条件, numericality: {only_integer: true}
文字数の制限を設定する
[when?]=パスワードの文字数制限、値段記入欄の上限、ジャンケンアプリとか
〜以上と設定したいとき
numericality: {greater_than: 数字}
〜以下と設定したいとき
numericality: {less_than: 数字}
条件より大きく+等しいと設定したいとき
numericality: {greater_than_or_equal_to: 数字}
等しいと設定したいとき
numericality: {equal_to: 数字}
条件より小さく+等しいと設定したいとき
numericality: {less_than_or_equal_to: 数字}
奇数と設定したいとき
numericality: {odd: true}
偶数と設定したいとき
numericality: {even: true}
ぺけにしたい条件を事前に準備したい場合
numericality: {other_than: 数字}
記入事項の文字や数字の形態を制限することができる=[正規表現]
[when?]=全角、半角英数字など状況に応じて文字の形態を制限することができる
{with}で囲むと正規表現に一致するものを制限することができる。
validates :条件, format: {with: 正規表現}
{without}で囲むと正規表現に一致しないものを指定することができる。
validates :条件, format: {without: 正規表現}
##最後に
modelでできることをまとめてみたが、まだvalidatesがあるとのこと。。使い勝手がわかったらもう一回別の記事に書いてみようと思う!
よくつかう正規表現についてのリンク → https://qiita.com/janani/items/aeb139516c8bb8e70661
ココまで読んでいただきありがとうございます!