Wie der Titel schon sagt, lautet dieser Artikel "So aktualisieren Sie Benutzerinformationen, ohne ein Kennwort einzugeben". Beim Erstellen einer Anwendung in Rails habe ich mich gefragt, ob ich meine Benutzerinformationen irgendwie aktualisieren kann, ohne mein Kennwort eingeben zu müssen. Es scheint, dass Sie für die Aktualisierungsmethode das Kennwort eingeben müssen. Wenn Sie darüber nachdenken, können viele WEB-Anwendungen wie SNS- und EC-Sites aktualisiert werden, ohne ein Kennwort für Benutzername und Profil einzugeben. Ich fragte mich, ob es einfacher sein würde als erwartet, ohne die Aktualisierungsmethode zu überschreiben.
Es gab eine Methode namens update_without_password, die diesen anständigen Namen hatte. Damit habe ich es diesmal wie folgt implementiert. Die zu verwendende Methode wird einfach danach sortiert, ob das im Parameter enthaltene Kennwort leer ist.
#Wenn das im Parameter enthaltene Passwort leer ist
if params[:password].blank?
#Benutzerinformationen ohne Passwort aktualisieren
@user.update_without_password(user_params)
#Wenn der Parameter ein Passwort enthält
else
@user.update(user_params)
Wenn das Modell die folgende Beschreibung hat, tritt bei Verwendung der Methode update_without_password ein Fehler auf. Es ist eine Validierung, die bedeutet, dass Sie ein Passwort eingeben müssen!
app/models/user.rb
validates :password, presence: true
Geben Sie die Aktion zum Anwenden der Validierung mit der Option on an. Wenn Sie Folgendes tun, wird die Validierung nur angewendet, wenn Sie den Benutzer erstellen.
validates :password, presence: true, on: :create
Recommended Posts