Я пытаюсь добавить пользовательскую проверку пароля в проекте, который я использую для управления пользователями. Я успешно создал пользователя или изменил пароль пользователя вручную. Однако если я выйду из консоли и снова открою ее, мой действительный пользователь (на последнем шаге) станет недействительным.
Я использую устройство 4.6.2 и рельсы 5.2.0
Вот моя пользовательская модель
class User < ApplicationRecord
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
validates :password,
format: { with: /\A(?=.*\d)(?=.*[A-Z])(?=.*\W)[^ ]{7,}\z/,
message: 'Password should have more than 7 characters including 1 uppercase letter, 1 number, 1 special character'
}
end
Когда я пытаюсь в моей консоли
u = User.new(email: 'test@test.com', password: 'Abc123!', password_confirmation: 'Abc123!')
u.valid? # TRUE
u.save
Тогда
u = User.last # return exact above user
u.valid? # FALSE
u.errors.full_messages # Password Password should have more than 7 characters including 1 uppercase letter, 1 number, 1 special character
Есть что-то, что я делаю не так?