Bei Verwendung von devise zum Implementieren einer neuen Benutzerregistrierungsfunktion Ich habe die Validierung gegeben, aber die Validierung wurde nicht angewendet, und es fiel mir schwer, sie umzusetzen. Daher werde ich sie als Memorandum belassen.
devise ist ein Juwel, das es einfach macht, die Authentifizierungsfunktion zu implementieren, aber für mich als Anfänger war es schwierig zu verstehen, was ich unsichtbar tat, weil das Juwel von selbst funktionierte. Dies war der Grund, warum es nicht angewendet wurde, obwohl es validiert wurde.
= form_for(@user, url: user_registration_path) do |f|
= f.password_field: password, class: "main__box__bottom__content__group2__form", Platzhalter: "7 oder mehr alphanumerische Zeichen halber Breite",
Die Schlussfolgerung war, dass das Formular password_field verwendet, sodass Rails dieses Eingabeformular als Kennwort zu erkennen scheint und automatisch eine einfache Validierung durchführt.
Passwort_Feld auf Textfeld korrigiert.
= form_for(@user, url: user_user_registration_path) do |f|
= f.text_field :password
end
Dies erkennt es als Passwortspalte.
Wenn Sie jedoch das Hinzufügen der Modellkennwortspalte überprüfen, wird diese doppelt überprüft. Hinzufügen einer Gerätevalidierung: Entfernen Sie validatable.
class User < ApplicationRecord
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :validatable
# ↑ Löschen.
end
Jetzt ist keine Gerätevalidierung mehr erforderlich und das Passwort erhält jetzt Ihre eigene benutzerdefinierte Validierung.
・ Die Validierung hat Priorität Validierung für das Textfeld> Gerät> Selbst erstellte Validierung Es ist geworden. -Wenn Sie nur eine benutzerdefinierte Validierung anwenden möchten, verwenden Sie text_field und delete: validatable of devise.
https://qiita.com/kouheiszk/items/215afa01eeaadbd99340
Recommended Posts