我正在关注官方documentation,以便创建一个简单的自定义验证,以检查电子邮件地址是否格式正确。
在应用程序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 部分,则可以访问这些视图,否则会生成此行上的错误,因为它显示在下面的屏幕截图中:
答案 0 :(得分:1)
lib
未自动添加到LOAD_PATH
。要解决此问题,请在lib
中附加config.autoload_paths
文件夹,或在模型的开头添加需要
require 'lib/email_format_validator'