[RUBY] C'était étonnamment facile. Comment mettre à jour les informations utilisateur sans entrer de mot de passe

Aperçu

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.

Ce que j'ai réellement fait

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)

point important

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

C'était étonnamment facile. Comment mettre à jour les informations utilisateur sans entrer de mot de passe
Comment mettre à jour les informations utilisateur sans mot de passe
Comment mettre à jour les modifications utilisateur dans Rails Devise sans entrer de mot de passe
Comment donner des informations utilisateur authentifiées à Spring Security autres que userId et mot de passe et comment s'y référer
Comment créer une classe qui hérite des informations de classe
Comment faire un cache sans trop réfléchir
Comment générer des valeurs de tableau sans utiliser d'instruction for
Comment joindre une table sans utiliser DBFlute et SQL
Un mémo étonnamment difficile même s'il semblait facile d'échanger entre deux Entités