has_secure_password: как потребовать минимальную длину - PullRequest
5 голосов
/ 26 июня 2011

Как мне потребовать, чтобы пароль имел минимальную длину при использовании has_secure_password в Rails 3.1? Я пытался сделать:

class User < ActiveRecord::Base
    ... 
    validates :password, presence: { on: create }, length { minimum: 8 }
    ...
end

, но тогда проверка завершается неудачно, пароль «слишком короткий» при обновлении, если пароль не указан в параметрах формы. Для других атрибутов длина проверяется только в том случае, если указано значение для поля. Это ошибка в реализации has_secure_password или я что-то не так делаю?

1 Ответ

4 голосов
/ 26 июня 2011

Вы должны сделать что-то вроде:

validates :password, presence: { on: create }, length { minimum: 8 }, :if => :password_changed?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...