Entwickeln: redirect auf sign up Fehler?
Ich versuche, umleiten von Benutzern, die nicht den sign-up-form (z.B. eingegebene Benutzername ist bereits vergeben sind, ließen Sie ein Feld leer, etc...)
Habe ich benutzerdefinierte Fehler eingerichtet für Benutzer, die nicht das Zeichen in der form folgenden code:
class CustomFailure < Devise::FailureApp
def redirect_url
root_path
end
def respond
if http_auth?
http_auth
else
redirect
end
end
Allerdings bin ich stecken geblieben, wie man dies bis zur Anmeldung scheitern. Idealerweise würde ich nur gerne weiterleiten/zurück zur root_path, irgendwelche Ideen? Danke!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Werden Sie wahrscheinlich benötigen, um eine Unterklasse
Devise::RegistrationsController
und überschreiben Sie die create-Aktion. Kopieren Sie einfach die create-Methode von hier und ändern Sie die Umleitung auf Fehler zu speichern.Ändern Ihre Routen zu erzählen, Entwickeln, bis Sie mit dem controller:
Es ist ein bisschen mühsam, Sie zu ändern, bestimmte Teile entwickeln, um Ihre Bedürfnisse anzupassen, und ich vermute, es ist, weil der gem macht einen guten job zu decken häufigsten Fällen. Jedoch edge-cases für die Nutzung entwickeln, sind viel, und Ihre Frage verweist auf einen von Ihnen. Ich hatte, etwas ähnliches zu tun, ist, stellen Sie sicher, entwickeln Weiterleitungen auf eine bestimmte Seite, wenn ein Benutzer eine der folgenden ist:
Unten ist, wie ich behandelt es.
Erstellen Sie zuerst einen controller namens RegistrationsController erbt Entwickeln::RegistrationsController etwa so:
In diesem controller haben Sie überschreiben die Methode create entwickeln. Gehen Sie zum entwickeln github-Seite hier, https://github.com/plataformatec/devise/blob/master/app/controllers/devise/registrations_controller.rb zum anzeigen der create-Methode und kopieren den code in diese Methode. Dann erstellen Sie eine private Methode zu überschreiben, die Rückkehr-Anweisung der Letzte block der if-Anweisung. Dein controller sollte ungefähr so Aussehen,
Sollte es funktionieren.
Tipp:
Halten flash-Fehlermeldungen fügen Sie diese Zeile vor dem redirect_to in Ihr überschreiben
Also in Ihrem registrations_controller.rb :
In config/routes.rb: