2010-09-27 5 views
2

J'utilise l'application Devise in a Rails 3 et je l'ai configurée avec succès pour qu'elle utilise un nom d'utilisateur comme méthode d'authentification au lieu d'un courrier électronique. Le problème est que dans le contrôleur d'enregistrements par défaut de la machine, il appelle une méthode "update_with_password" sur les paramètres passés, ce qui permet aux utilisateurs de changer leur nom d'utilisateur et leur mot de passe. Ce comportement est logique si vous utilisez le courrier électronique comme méthode d'authentification, car il est raisonnable de s'attendre à ce que les utilisateurs puissent modifier leur adresse électronique. Cependant, avec l'utilisation des noms d'utilisateur, je préférerais que les utilisateurs ne puissent pas les changer; Je veux seulement qu'ils puissent changer leur mot de passe. Est-ce que la meilleure façon de le faire serait de surcharger le RegistrationsController, et d'empêcher l'assignation en masse des params pour que seul le mot de passe puisse être changé?RoR Devise: utilisation d'un nom d'utilisateur non modifiable

Espérons que cela soit clair. Merci!

Répondre

0

Ok, je l'ai résolu. J'ai ajouté attr_readonly à la variable de nom d'utilisateur, de sorte qu'il ne peut pas être changé avec l'assignation de masse.

Questions connexes