2013-03-07 3 views
16

Ich versuche in meiner Rails App einen Email-Validator hinzuzufügen. Ich habe die folgende Datei /lib/validators/email_validator.rbRails 3, Unbekannter Validator: 'EmailValidator'

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 

Im application.rb ich diese Zeile hinzugefügt:

config.autoload_paths << "#{config.root}/lib/validators"

Und hier ist mein User-Modell:

class User < ActiveRecord::Base 
    attr_accessible :email, :password,:name 
    validates :email, :presence => true, :uniqueness => true, :email => true 
end 

Wenn ich will starte den Server Ich habe einen Fehler bekommen:

Unknown validator: 'EmailValidator' (ArgumentError) 

Hat jemand eine Idee, wie ich dieses Problem beheben kann?

Antwort

-2

Versuchen Sie, die modifizierte User-Modell;

class User < ActiveRecord::Base 

    attr_accessible :email, :password,:name 

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

end 
+0

Dies ist keine Problemlösung – edikgat

4

Dieser Fehler occures, Schienen becouse Lasten Modelldatei, bevor Sie Ihre Validierungsdatei

Versuchen Sie, Ihre Validierungsdatei zu Beginn Ihrer Modelldatei

require_dependency 'validators/email_validator.rb' 
+0

manuell zu verlangen Das hat für mich funktioniert ... – Daryn