メールアドレスが適切にフォーマットされているかどうかを確認する簡単なカスタム検証を作成するために、公式ドキュメントに従っています。
アプリケーションの lib フォルダーに、次のコードを含むemail_format_validator.rbという名前のファイルを作成しています。
class EmailFormatValidator < ActiveModel::EachValidator
def validate_each(object, attribute, value)
unless value =~ /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\z/i
object.errors[attribute] << (options[:message] || "is not formatted properly")
end
end
end
私のモデルでは、次のチェックがあります。
validates :email, presence: true, email_format: true
email_format: true の部分をコメントすると、ビューにアクセスできます。そうしないと、下のスクリーンショットに表示されているように、この行でエラーが生成されます。