2013-04-21 63 views
0

我正在关注官方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部分视图进行了评论,否则,会在下面的屏幕截图中显示该行的错误:

enter image description here

回答

1

lib不会自动添加到LOAD_PATH。为了解决这个问题,无论是在config.autoload_paths追加lib文件夹或添加在模型的开头需要

require 'lib/email_format_validator' 
+0

感谢这个解决问题。但是这很奇怪 - 我使用的是torquebox,它会自动添加到我的LOAD_PATH中的lib文件夹中的所有jar文件。也许,它不会添加.rb文件。 – gotqn 2013-04-21 07:54:53