Entwickeln: Deaktivieren Sie die Passwort-Bestätigung bei der Registrierung
Bin ich mit dem Entwickeln für die Schienen. In der Standard-Registrierung Prozess, Entwickeln, erfordert, dass Benutzer geben Sie das Kennwort zweimal ein, für die Validierung und Authentifizierung. Wie kann ich es deaktivieren?
- Was tun Sie, wenn eine person einen Tippfehler, wenn Sie geben Sie das Kennwort in einer box? Es gibt Gründe dafür, dass eine Bestätigung auf Passwort-Formulare, und Sie sollten sicher sein, es zu entfernen
- yup. ich möchte, um es zu entfernen. zur Vereinfachung der Registrierung. irgendeine Idee, wie man es deaktivieren?
- Eine Art späte Antwort, aber Sie können die E-Mail-Kennwort zurücksetzen, wenn Benutzer Sie falsch. Viele usability-Menschen beginnen zu bevorzugen diesen Ansatz, weil es für den Benutzer einfacher.
- stackoverflow.com/questions/11641901/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Deaktivieren Passwort-Bestätigung Sie können einfach entfernen Sie die
password_confirmation
Feld auf dem Anmeldeformular. Dies deaktiviert die müssen das Kennwort bestätigen, ganz!rails g devise:views
password_confirmation
Abschnitt inapp\views\devise\registrations\new.html.erb
Einen Weg, es zu tun:
Der Grund, warum dies funktioniert, liegt in
lib/devise/models/validatable.rb
im Entwickeln Quelle:Beachten Sie, dass die Validierung wird nur ausgelöst, wenn
password_required?
zurücktrue
, undpassword_required?
zurückfalse
wenn diepassword_confirmation
Feld istnil
.Da, wo die
password_confirmation
Feld im Formular vorhanden ist, wird es immer sein, die in das Parameter-hash , da ein leerer string, wenn es leer gelassen wird, wird die Validierung angestoßen. Jedoch, wenn Sie entfernen die Eingabe aus dem Formular, diepassword_confirmation
in die params werdennil
, und daher die Validierung wird nicht ausgelöst.Es scheint, wenn Sie nur entfernen Sie die attr_accessible Anforderung aus dem Modell, es funktioniert genauso gut ohne Sie.
Auf einer seitlichen Anmerkung, ich Stimmen mit dieser Praxis, in der seltene Fall, es war ein Tippfehler, kann der Benutzer verwenden Sie einfach die Passwort-Wiederherstellung zu erholen Ihr Passwort.
Ich bin nicht vertraut mit Entwickeln aber wenn Sie Zugriff auf das Modell in der Steuerung vor speichern/Validierung konnte Sie etwas wie die folgende
Gründen der Schienen 4 Benutzer finden diese Frage einfach löschen
:password_confirmation
von der zulässigen Parameter, die Sie erklären inApplicationController.rb
.Einfachste Lösung:
Entfernen :validierbare von
😉
Müssen Sie nur entfernen Sie die password_confirmation Feld aus dem Formular.
Siehe wiki
https://github.com/plataformatec/devise/wiki/How-To:-Allow-users-to-edit-their-account-without-providing-a-password
Entwickeln, die Standard-Validierungen (lib/entwerfen/Modelle/validierbare.rb):
und Methode:
Müssen wir überschreiben Entwickeln Standard-Passwort Validierung.
Fügen Sie den folgenden code am Ende, damit es nicht überschrieben wird durch jede Entwickeln, die eigenen Einstellungen.
Und dein Modell würde wie folgt Aussehen:
Dann entfernen Sie die password_confirmation Feld auf dem Anmeldeformular.
Ich denke, das ist die einfache Möglichkeit zum deaktivieren der Passwort-Bestätigung:
https://github.com/plataformatec/devise/wiki/Disable-password-confirmation-during-registration