2010-01-16 7 views
0

Dans mon modèle User.rb, j'ai cette ligne:validates_confirmation_of Rails me empêchant de sauver un nouvel objet

validates_confirmation_of: mot de passe,: message => "Vos mots de passe doivent correspondre."

Ensuite, lorsque l'utilisateur s'inscrit, les mots de passe correspondent, tout est génial ... jusqu'à ce que je souhaite ajouter plus d'informations à l'objet utilisateur, puis sauvegarder à nouveau. Mais l'exécution de @ user.save renvoie l'erreur que mes mots de passe ne correspondent pas. Dans ma méthode de commande d'inscription, j'ai ces lignes:

@user = User.new(params[:user]) 
    if request.post? 
    if [email protected] 
     @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 [email protected] 
     puts "error for some reason in signup" 
     puts @user.errors.inspect 
     end 

Et après inspection, impressions @ de users.errors.inspect sur: [ "Vos mots de passe doivent correspondre"] #}. Ils l'ont fait, sinon, il n'aurait jamais passé le premier appel .save. Un conseil sur ce que je fais mal ici?

Merci pour votre aide.

Répondre

2

Ce fixe il:

validates_confirmation_of: mot de passe,: sur =>: créer,: message => "Vos mots de passe doivent correspondre."