Rails 3, Unknown validator: 'EmailValidator'
11,099
Solution 1
If you place your custom validators in app/validators they will be automatically loaded without needing to alter your config/application.rb file.
Resource: Where should Rails 3 custom validators be stored? (second answer)
Solution 2
This error occures, because rails loads model file before your validation file
Try to require your validation file manually at the start of your model file
require_dependency 'validators/email_validator.rb'
Related videos on Youtube
Comments
-
Marvin almost 2 years
I try to add an email-validator in my rails app. I created the following file
/lib/validators/email_validator.rb
class EmailValidator < 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
In the application.rb I added this line:
config.autoload_paths << "#{config.root}/lib/validators"
And here is my User model:
class User < ActiveRecord::Base attr_accessible :email, :password,:name validates :email, :presence => true, :uniqueness => true, :email => true end
If i want to start the server I got an error:
Unknown validator: 'EmailValidator' (ArgumentError)
Has anybody an idea how I can fix this problem?
-
Ajinath Jedhe about 6 yearsHow to use this with rails 5. it will not validate email using
ActiveModel::EachValidator
. EmailValidator class is not invoke.
-
-
edikgat almost 10 yearsThis is not problem solution