Hiroto-Ishida  2020/11/30更新

Ruby on Railsの勉強〜モデルのオリジナル検証コードをかく〜


 

今日はモデルのオリジナル検証コードを書いていこうと思います


自分で検証コードを書く場合の書き方は2つある。

1、検証メソッドを追加して、そのメソッドを検証用のメソッドとして指定する。

2、自前のValidatorを作って利用する。


検証を追加するためのステップは2つある。

1、検証用のメソッドをモデルクラスに登録する

2、検証用のメソッドを実装する


ステップ1として、検証用のメソッドを「validate_name_not_including_comma」と言う名前する。

その名前をvalidateと言うクラスメソッドに渡すことにより、このメソッドを検証のために利用すると言うことをTaskモデルクラスに伝える。


app/models/task.rb

validate :vallidate_name_not_including_comma


ステップ2として、決めた名前の検証用メソッドを追加。このメソッドはオブジェクトの外部から呼ばれることを想定していないので、privateにする方が良い。


app/models/task.rb

class Task < ApplicationRecord
  validates :name, presence: true
  validates :name, length: { maximum: 30 }
  validate :vallidate_name_not_including_comma

  private

  def validate_name_not_including_comma
    errors.add(:name, 'にカンマに含めることはできません') if name&.include?(',')
  end
end


タイトルとURLをコピーしました