rails 3自定义验证器错误

时间:2011-02-02 04:57:40

标签: ruby-on-rails

我正在关注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'

为什么呢?怎么解决这个问题?

2 个答案:

答案 0 :(得分:4)

您需要重新启动服务器。默认情况下不会加载lib目录,因此您需要重新启动Rails服务器才能加载此验证程序。

修改

尝试将它们放在lib/validators下并重新启动服务器......

答案 1 :(得分:0)

我在'config / initializers'下放了'email_format_validator.rb'。然后重启服务器。一切都在运作..