как проверить длину пароля при обновлении пароля - PullRequest
0 голосов
/ 05 июля 2011

Когда создается новый пользователь, ему присваивается пароль.

Я хочу проверить случай, когда пользователь обновляет или меняет свой пароль.

User.rb

 validates :password, :on => :create,
                :presence => true,
                :confirmation => true,
                :length => {:within => 6..12}

before_validation :make_password, :on => :create

В spec / models / user_spec.rb у меня есть следующее:

описать "проверки пароля" сделать до (: каждый) делать @user = Factory (: пользователь) конец

it "should reject passwords that are too long" do
  too_long_password = "a" * 13
  @user.update_attributes(@attr.merge(:password => too_long_password, :password_confirmation => too_long_password)).should_not be_valid
end

конец

Не работает. Теперь, как я могу проверить наличие обновлений? Любые идеи приветствуются.

1 Ответ

2 голосов
/ 05 июля 2011

удалить предложение :on => :create из проверок.Удаление этого активирует проверку при создании и обновлении.

 validates :password,:presence => true,
                     :confirmation => true,
                     :length => {:within => 6..12}

Вы не упомянули, но вы также можете удалить :on => :create, если это необходимо и в before_validation

...