railsでモデル内にvalidationを書く
前回の記事では、共通化したvalidationの書き方でした。
今回は、単一のモデルでしか使わないvalidationの書き方になります。
書き方
class User < ActiveRecord::Base validate :email_validate def email_validate valid_address = /\A[a-zA-Z0-9_\#!$%&`'*+\-{|}~^\/=?\.]+@[a-zA-Z0-9][a-zA-Z0-9\.-]+\z/ unless email ←ここはカラム名になります =~ valid_address errors.add(:body, '正しいアドレスを入れてください。') end end end
これでemailのvalidationが完成します。
まとめ
前回の書き方は、共通のvalidationのカラムの値を確かめるためだけのものを作成しました。
今回は、単一のモデル内での処理になります。
使う場所が単一のモデル内であれば、モデル内で完結しておけば、どこで使用しているのかの判断をしなくて良くなります。
このvalidationはどこで使う?という、観点を持ち、適切な場所に書いていくのが、重要です。