[RUBY] [Rails] Passen Sie die Validierung des Geräts an

Zunaechst

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.

Standardvalidierung entwickeln

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.

Anpassungsverfahren entwickeln

1. Ändern Sie das Formular (in das richtige Formular)

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.

2. Validierungseinstellungen festlegen

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.

Zusammenfassung

・ 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.

Verweise

https://qiita.com/kouheiszk/items/215afa01eeaadbd99340

Recommended Posts

[Rails] Passen Sie die Validierung des Geräts an
[Schienen] erfinden
[Schienen] Validierung einstellen
[Rails] Einführung in das Gerät
[Rails5] Rspec -validierung-
Gerät mit Schienen handhaben
[Rails] entwickeln eine Einführungsmethode
[Schienen] Standardwerte festlegen
[Rails] Standardmäßig festgelegte Kennwortüberprüfung abbrechen / ändern
[Rails] Bearbeiten und Anpassen von Geräteansichten und Controllern
Was ist Rails Gem Devise?
[Rails] Der längste japanische Nachname (Validierung)
[Rails] Flow bei der Installation von Gem Devise
(Für Anfänger) [Rails] Installieren Sie das Gerät
[Schienen] Spalte zum Entwickeln hinzufügen
[Rails] Verwendung der Validierung
Zusammenfassung der Ruby on Rails-Validierung
[Rails] Fehler während der Installation des Geräts
[Rails] Wie man Edelstein "devise" benutzt
[Schienen] Verwendung von Geräten (Hinweis)
[Rails] Einstellung des Sitzungszeitlimits im Gerät
[Rails] Implementierung des Anmeldebildschirms in Devise
[Divise] Rails Memo Grundeinstellungen Grundeinstellungen
[Rails] Validierungseinstellungen und japanische Lokalisierung
[Rails] [Devise] Profil bearbeiten, ohne Passwort einzugeben
Ruby On Rails entwickelt Routing-Konflikte
[Schienen] Fügen Sie starke Parameter hinzu, um sie zu entwickeln
[Rails 6] Passen Sie Bootstrap in der Rails + Bootstrap 5.0.0-Alpha-Umgebung an
Erstellen Sie meine Seite mit Rails
[Schienen] Verwalten Sie mehrere Modelle mit einem Edelstein
[Rails] Funktionseinschränkungen im Gerät (Login / Logout)
[Schienen] Verwenden Sie die Validierung für einen bestimmten Controller
[Hinweis] Verwendung von Rails 6 Devise + Cancancan
[Rails] Implementierung einer Validierung, die die Eindeutigkeit beibehält
[Rails] Wie man Geräte ins Japanische übersetzt
Rails-Validierung und null: false Persönliche Notizen