0

メールアドレスが適切にフォーマットされているかどうかを確認する簡単なカスタム検証を作成するために、公式ドキュメントに従っています。

アプリケーションの 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 の部分をコメントすると、ビューにアクセスできます。そうしないと、下のスクリーンショットに表示されているように、この行でエラーが生成されます。

ここに画像の説明を入力

4

1 に答える 1

1

libに自動的に追加されませんLOAD_PATH。この問題を解決するには、libフォルダーをconfig.autoload_paths追加するか、モデルの先頭に require を追加します。

require 'lib/email_format_validator'
于 2013-04-21T07:44:26.287 に答える