LoginSignup
0
0

More than 1 year has passed since last update.

[Rails]validatesについて

Posted at

初めに

なぜこの記事を書きたかったのか

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とは

markmodelsample.png
イメージは、controller内で設定した内容にルールをつけてDATABASEと情報のやり取りができる機能を持つ。

条件が複数ある場合におすすめな書き方!

[+α]with_option内に別のwith_optionを設定しても大丈夫!

with_options ルール: true do
  validates :条件, :条件, :条件, :条件
end

できることリスト+使い方

指定した条件の有無を設定する
[when?]=ユーザに記入してほしいものは必須条件にするとか。

  validates :条件, :条件, presence: true

with_optionを使った例
presencetruedo.png

指定した条件の完了後にメッセージを出力させる
[when?]=新規登録/ログイン時にユーザの記入事項に誤りがあればエラー文を、ないときは”成功!”と表示させれる

validates :条件, ルール: {message: "出力したい文章"}

messagesample.png

データベースで保存するものを重複しないようにできる
[when?]=会社名やメールアドレスの重複を防げれる

validates :条件, uniqueness: true, on: :アクション

**新規登録/ログイン時にemailを保存するときに重複しないようにするの例
uniquenesssample.png

記入事項を数字だと限定する
[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: 数字}

**other_thanでの例
sampleofother_than.png

記入事項の文字や数字の形態を制限することができる=[正規表現]
[when?]=全角、半角英数字など状況に応じて文字の形態を制限することができる

{with}で囲むと正規表現に一致するものを制限することができる。

validates :条件, format: {with: 正規表現}

{without}で囲むと正規表現に一致しないものを指定することができる。

validates :条件, format: {without: 正規表現}

withで囲んで正規表現を使った例
seikihyougensample.png

最後に

modelでできることをまとめてみたが、まだvalidatesがあるとのこと。。使い勝手がわかったらもう一回別の記事に書いてみようと思う!

よくつかう正規表現についてのリンク → https://qiita.com/janani/items/aeb139516c8bb8e70661

ココまで読んでいただきありがとうございます!

0
0
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
0