Сообщение об ошибке валидации Rails слишком короткое, адрес недействителен - PullRequest
2 голосов
/ 01 февраля 2012

При попытке заполнить базу данных я столкнулся с ошибкой проверки в атрибуте электронной почты моей модели пользователя.Ошибка:

Validation failed: Email is too short (minimum is 5 characters), Email is invalid

Дело в том, что мой адрес электронной почты xxxxxxxx@gmail.com.У меня пять персонажей.Извините за вопрос новичка, но я не знаю, что происходит.Недавно я следил за Railscasts, чтобы сбросить пароль пользователя и включить CanCan.Я не уверен, что CanCan повлияет на что-либо, но до исследования этой новой функциональности я смог полностью заполнить свою базу данных без проблем.Я вставил часть своего кода ниже.Я использую Rails 3.0.5 и Ruby 1.9.2.

Пример того, как я создаю пользователя в моем начальном файле:

me = User.create(:email => 'me@gmail.com', :password => 'test', :profile => my_profile)

Пользователь.rb модель:

class User < ActiveRecord::Base
  attr_accessor :password
  attr_accessible :password, :password_confirmation

  before_save :encrypt_new_password
  before_create { generate_token(:auth_token) }
  before_validation :downcase_email

  has_one :profile, :dependent => :destroy

  accepts_nested_attributes_for :profile

  validates :email, :uniqueness => true,
                :length => { :within => 5..50 },
                :format => { :with => /^[^@][\w.-]+@[\w.-]+[.][a-z]{2,4}$/i }
  validates :password, :confirmation => true,
                   :length => { :within => 4..20 },
                   :presence => true,
                   :if => :password_required?

1 Ответ

3 голосов
/ 01 февраля 2012

Добавить: отправьте электронное письмо на адрес attr_accessible, чтобы разрешить его массовое назначение.Без этого поле электронной почты даже не будет установлено, поэтому проверка не удастся.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...