lkahtz
lkahtz

Reputation: 4796

rails 3 customize validator error

I am following Ryan Bates' Railscast. I find when I tried to establish my customized field validator, my rails 3 is not working as expected.

I established a new email_format_validator.rb file in under lib/ and the codes are:

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

I put this line in my user.rb (Model file):

validates :email, :presence => true, :uniqueness => true, :email_format=>true

The browser complained:

Unknown validator: 'email_format'

Why? How to solve this?

Upvotes: 0

Views: 876

Answers (2)

lkahtz
lkahtz

Reputation: 4796

I put 'email_format_validator.rb' under 'config/initializers'. And then restart the server. Everything is working now..

Upvotes: 0

sethvargo
sethvargo

Reputation: 26997

You will need to restart your server. The lib directory isn't loaded by default, so you'll need to restart your Rails server in order to load this validator.

 

Edit:

Try putting them under lib/validators and restarting the server...

Upvotes: 4

Related Questions