Concevoir De Ne Pas Valider Mot De Passe/Mot De Passe De Confirmation

J'ai un custom contrôleur qui gère l'édition des mots de passe utilisateur basée sur le code ici.

Utilisateur Modèle

attr_accessible :password, :password_confirmation, :username, :login
...
devise :database_authenticatable, 
       :lockable, 
       :registerable, 
       :recoverable, 
       :rememberable, 
       :trackable

PasswordsController

expose(:user) { current_user }

def update
  if user.update_with_password(params[:user])
    sign_in(user, :bypass => true)
    flash[:notice] = "success"
  else
    render :edit
  end
end

Modifier mon formulaire de mot de passe est situé ici.

Le problème c'est que peu importe ce que je entrer (ou ne saisissez pas d'ailleurs) dans la edit formulaire de mot de passe, Le "succès" de la méthode flash est affiché.

  • Le fait tout le travail, comment il devrait bien? si le champ de confirmation ne correspond pas ou current_password est faux, cela ne change pas le mot de passe?
  • Il a encore des modifications à tout ce qui est en passe :mot de passe indépendamment de ce que (le cas échéant) est en :password_confirmation.
  • qu'advient-il si vous modifiez l'instruction if pour if params[:user][:password] == params[:user][:password_confirmation] et mettre user.update_with_password(params[:user]) dans le corps?
  • Vous manque le validatable module ou si vous omettez de le code que vous avez fourni?
  • Notez que même si vous avez inclus validatable, si vous avez suivi les Concevoir et OmniAuth RailsCast les instructions qui incluent primordial password_required?, les utilisateurs qui s'inscrivent à travers omniauth ne sera pas obtenir leur réinitialise le mot de passe confirmé.
  • Merci pour la mention de cette! M'a sauvé quelques heures. 🙂

InformationsquelleAutor Kyle Decot | 2011-07-01