일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- C로 시작하는 컴퓨터 프로그래밍4판
- ruby
- nico
- 일본어
- html
- Flutter
- 単語
- java
- 디지몬
- springboot
- 자바
- 건담
- 日本語
- rails7
- 一日一つメソッド
- jsp
- javascript
- rails
- 인프런
- メソッド
- Python
- vscode
- 건담베이스
- Spring
- CSS
- DART
- 연습문제
- 비즈니스일본어
- Web
- 반다이몰
- Today
- Total
AR삽질러
Rails 一日一つメソッド (Day30) validation 본문
Rails 一日一つメソッド (Day30) validation
1. validationとは?
- validationとは、データベースに保存する前に内容を検証する機能。
- valitatesメソッドを使うことで、ModelオブジェクトがDataBaseに保存する前にオブジェクトのデータが特定の条件に合うかどうかを確認できる。validates検証が失敗した場合、オブジェクトは保存されないし、エラー メッセージを含む状態で返される。
2. validationの主なメソッド
- Modelの属性に対する特定の検証ルールを設定するため使う。
1) validates
- 複数の検証を一度に設定する
validates :name, :email, presence: true, uniqueness: true
2) validates_presence_of
- 指定された属性が空でないことを検証する。
3) validates_length_of
- 文字列の長さが指定された範囲内であることを検証する。
4) validates_numericality_of
- 数値であることを検証する。
3. validationのトリガ
- validation検証は ActiveRecordの Call Backメソッドによってトリガされる。
validationのトリガ | |
save | ModelインスタンスをData Baseに保存する。 validation検証を行い、検証に失敗した時 falseを変えす。 |
save! | saveと似ているけど、validation検証を失敗すると、ActiveRecord::RecordInvalid例外を発生させる。 |
create | 新しいModelインスタンスを生成し、DataBaseに保存する。 Validation検証に失敗したら、オブジェクトは保存されないし、falseを返す。 |
create! | createと似ているけど、validation検証に失敗するとActiveRecord::RecordInvalid例外を発生させる。 |
update | 一つ以上のModelインスタンスをUpdateし、Data Baseに保存する。 validation検証を行い、検証に失敗した時 falseを変えす。 |
update! | updateと似ているけど、validation検証を失敗すると、ActiveRecord::RecordInvalid例外を発生させる。 |
4. validation使い方
validates :カラム名、ヘルパー
validates :カラム名, :カラム名, :カラム名, :カラム名, :カラム名, ヘルパー
validates :email, validation: {option: value}, ...
- 検証するModelの属性
validates:
- 適用する検証の種類( presencem uniqueness, format, length ...)
{option: value}
- 該当する検証し対するオプション。
5. validationのヘルパー
- ヘルパーを使ってどんな検証が行われるのかを定義する。
1) presence
- 属性が空ではないか、を検証する。
validates :カラム名, presence: true
validates :email, presence: true
- emailカラムに値が入っているかを検証する。
2) adsence
- presenceと逆に [空であるか]を検証する。
validates :カラム名, absence: true
validates :email, absence: true
- emailカラムに値な入っていないかを検証する。
2) uniqueness
- 属性の値がDataBase内で Unique(重複していない)であることを検証する。
validates :カラム名, uniqueness: true
validates :email, uniqueness: true
- email属性の値がDataBase内で Unique(重複していない)であることを検証する。
2) length
- 属性の長さを定義する。
オプション | 内容 |
minimum | 最小値を指定する。 |
maximum | 最大値を指定する。 |
in | 長さの範囲を指定する。 |
is | 値の長さを指定する。 |
validates :password, length: { minimum: 6 }
validates :password, length: { maximum: 10 }
validates :password, length: { in: 5..10 }
validates :password, length: { is: 5 }
- password属性の長さが最小6文字であることを検証する。
3) numericality
- 属性に数値のみ、0以上が使われていることを検証する。
validates :カラム名, numericality: true
Option | 制約 |
:only_integer | trueにすると整数のみを指定する。 |
:greater_than | 指定された値よりも大きくなければならない |
:greater_than_or_equal_to | 指定された値と等しいか、それよりも大きくなければならない |
:equal_to | 指定された値と等しくなければならない |
:less_than | 指定された値よりも小さなければならない |
:less_than_or_equal_to | 指定された値と等しいか、それよりも小さくなければならない |
:other_than | 渡された値以外の値でなければならない |
:odd | trueにすると奇数であるかを指定する。 |
:even | trueにすると偶数であるかを指定する。 |
validates :preice, numericality: { only_integer: true }
- price属性が数値でありながら、0以上であることを検証する。
4) inclusion
- 値が指定した文字になっていることを検証する。
validates :カラム名, inclusion: { in: ["検証したい文字"] }
validates :カラム名, inclusion: { in: %w(検証したい文字1, 検証したい文字2) }
5) exclusion
- 指定された値が含まれていないかを検証する。
validates :カラム名, exclusion: { in: ["検証したい文字1"] )
validates :nick_name, in: %w(admin)
6) acceptance
- チェックボックスがオンになっているかどうかを検証する。
validates :カラム名, acceptance: true
- 「Login」ボタンとか「同意する」などのチェクブックスにチェックが入っているかを検証する。
7) confirmation
- 2つのフォームで入力された内容が完全に一致するかを検証する。
validates :カラム名, confirmation: true
validates :email, confirmation: true
'Ruby > RubyOnRails-日本語' 카테고리의 다른 글
Rails 一日一つメソッド (Day32) stylesheet_link_tagメソッド (0) | 2024.02.13 |
---|---|
Rails 一日一つメソッド (Day31) joinsメソッド (0) | 2024.02.08 |
Rails 一日一つメソッド (Day29) errors.add (0) | 2024.02.06 |
Rails 一日一つメソッド (Day28) status (0) | 2024.02.05 |
Rails 一日一つメソッド (Day27) image_tagメソッド (0) | 2024.02.02 |