2013-03-07 9 views
16

私はレールアプリにメールバリデーターを追加しようとしています。私がしたい場合はレール3、不明なバリデーター: 'EmailValidator'

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

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

そして、ここでは私のUserモデルである:私は、私はこの行を追加application.rbでは、次のファイル/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 

を作成しましたサーバーを起動します。エラーが表示されます。

Unknown validator: 'EmailValidator' (ArgumentError) 

この問題をどのように解決できるか考えている人はいますか?

答えて

-2

修正Userモデルを試してみてください。

class User < ActiveRecord::Base 

    attr_accessible :email, :password,:name 

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

end 
+0

で手動で検証ファイルを必要とするようにしてください – edikgat

4

このエラーは、お使いのバリデーションファイルの前にレールロードモデルファイルbecouse、occures

これは、問題の解決策ではありません、あなたのモデルファイルの先頭

require_dependency 'validators/email_validator.rb' 
+0

これは私のために働いた... – Daryn