validates_confirmation_of в Rails мешает мне сохранить новый объект - PullRequest
0 голосов
/ 16 января 2010

В моей модели User.rb у меня есть эта строка:

validates_confirmation_of: password,: message => "Ваши пароли должны совпадать."

Затем, когда пользователь регистрируется, пароли совпадают, все отлично ... пока я не хочу добавить дополнительную информацию к объекту пользователя, а затем сохранить снова. Но запуск @ user.save возвращает ошибку, что мои пароли не совпадают. В моем методе контроллера регистрации у меня есть эти строки:

  @user = User.new(params[:user])
  if request.post?
    if !@user.save
      @errors = @user.errors
    else

      # crucial user details:
      @user.salt = [Array.new(6){rand(256).chr}.join].pack("m").chomp 
      @user.password = encrypted_password(@user.password, @user.salt) #hash this
      if !@user.save
        puts "error for some reason in signup"
        puts @user.errors.inspect
      end

И после проверки @ users.errors.inspect распечатывает: # ["Ваши пароли должны совпадать."]}. Они сделали, иначе, он никогда бы не прошел первый вызов .save. Любой совет, что я здесь делаю не так?

Спасибо за вашу помощь.

1 Ответ

2 голосов
/ 16 января 2010

Это исправлено:

validates_confirmation_of: пароль,: on =>: create,: message => "Ваши пароли должны совпадать."

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