我正在关注Ryan Bates的Railscast。我发现当我尝试建立自定义的字段验证器时,我的rails 3没有按预期工作。
我在lib /下建立了一个新的email_format_validator.rb文件,代码是:
class EmailFormatValidator < ActiveModel::EachValidator
def validate_each(object, attribute, value)
unless value =~ /^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/i
object.errors[attribute] << (options[:message] || "is not formatted properly")
end
end
end
我把这行放在我的user.rb(模型文件)中:
validates :email, :presence => true, :uniqueness => true, :email_format=>true
浏览器抱怨道:
未知验证码:'email_format'
为什么呢?怎么解决这个问题?
答案 0 :(得分:4)
您需要重新启动服务器。默认情况下不会加载lib
目录,因此您需要重新启动Rails服务器才能加载此验证程序。
修改强>
尝试将它们放在lib/validators
下并重新启动服务器......
答案 1 :(得分:0)
我在'config / initializers'下放了'email_format_validator.rb'。然后重启服务器。一切都在运作..