Новый класс валидатора, представленный в каталоге lib, не распознается и выдает ошибку - PullRequest
3 голосов
/ 10 октября 2010
Unknown validator: 'email_format'

Rails.root: /home/saran/work_space/rails_apps/test_app
Application Trace | Framework Trace | Full Trace

app/models/user.rb:2
app/controllers/user_controller.rb:5:in `create'

мой файл модели пользователя, как показано ниже: -

class User < ActiveRecord::Base
  validates :email, :presence => true, :uniqueness => true, :email_format => true
end

мой класс lib представлен следующим образом:

:~/work_space/rails_apps/test_app/lib$ cat 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

Я использую Rails версии 3.0

Ответы [ 2 ]

0 голосов
/ 01 сентября 2013

Измените модель пользователя, как показано ниже:

class User < ActiveRecord::Base
   require "email_format_validator"
   validates :email, :presence => true, :uniqueness => true, :email_format => true
end
0 голосов
/ 30 ноября 2012

У меня была такая же проблема.

Чтобы решить эту проблему, я создал новую папку «validators» в «config / lib».

Затем я добавил это в config / application.rb:

config.autoload_paths += %W(#{config.root}/lib/validators/)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...