2011-08-02 3 views

Répondre

0

Vous devriez juste être en mesure d'authentifier en utilisant le mot de passe entré sur le avant d'enregistrer les modifications. Semblable à ce que Ryan a pour créer:

si User.authenticate (params [:], email params [: mot de passe]) # enregistrer les modifications

+0

Oui cela fonctionne, bien qu'il ait quelques limitations, par ex. cela devient plus compliqué si le mot de passe lui-même peut être changé dans le formulaire d'édition, ou si l'email peut être changé ou ne fait même pas partie du formulaire. –

2

Qu'est-ce que fait et est Devise probablement la meilleure idée est d'écrire un update_with_password méthode dans votre modèle utilisateur qui est appelée dans l'action update de votre users_controller. Cette méthode utilise update_attributes pour modifier le modèle utilisateur, mais uniquement si le mot de passe actuel est spécifié correctement.

Je recommande d'examiner la source Devise (et d'autres gemmes) si vous souhaitez en savoir plus sur la construction de votre propre authentification.

Questions connexes