Comme son titre l'indique, cet article s'intitule "Comment mettre à jour les informations utilisateur sans entrer de mot de passe". Lors de la création d'une application dans Rails, je me suis demandé si je pouvais d'une manière ou d'une autre mettre à jour mes informations utilisateur sans avoir à saisir mon mot de passe. Il semble que la méthode de mise à jour vous oblige à entrer le mot de passe. Donc, si vous y réfléchissez, de nombreuses applications WEB telles que les sites SNS et EC peuvent être mises à jour sans entrer de mot de passe pour le nom d'utilisateur et le profil. Je me suis demandé si ce serait plus facile que prévu sans remplacer la méthode de mise à jour.
Il y avait une méthode appelée update_without_password qui portait ce nom décent. En utilisant cela, je l'ai implémenté comme suit cette fois. La méthode à utiliser est simplement triée selon que le mot de passe inclus dans le paramètre est vide.
#Si le mot de passe contenu dans le paramètre est vide
if params[:password].blank?
#Mettre à jour les informations utilisateur sans mot de passe
@user.update_without_password(user_params)
#Si le paramètre contient un mot de passe
else
@user.update(user_params)
Si le modèle a la description suivante, une erreur se produit lors de l'utilisation de la méthode update_without_password. C'est une validation qui signifie que vous devez entrer un mot de passe!
app/models/user.rb
validates :password, presence: true
Spécifions l'action pour appliquer la validation avec l'option on. Si vous procédez comme suit, la validation ne sera appliquée que lorsque vous créez l'utilisateur.
validates :password, presence: true, on: :create
Recommended Posts