Ich habe kürzlich das Devise-Authentifizierungssystem in eine Schienen-Test-App integriert. Die Test-App enthält einfach ein Projektmodell / Controller / View, das sich hinter der Authentifizierung befindet.
Ich füge jetzt ein Beta-Einladungssystem hinzu, sodass nur Nutzer, die eine Einladung von einem anderen Nutzer erhalten haben, der Website beitreten können. Ich implementierte dieses System durch folgendes: Ссылка .
Das einzige Problem, das ich habe, ist, dass die Beta-Einladung mich dazu zwingt, dem Benutzer-Controller etwas Logik hinzuzufügen, was mit Devise nicht möglich ist. Ich versuche einen neuen Registrierungs-Controller zu erstellen, indem ich Users :: RegistrationsController & lt; Devise :: RegistrationsController, das im Grunde genommen mit dem Devise-Controller identisch ist, aber mir erlaubt, zusätzliche Logik für das Beta-Einladungssystem hinzuzufügen.
Ich kann jedoch nicht, dass dieser neue Controller funktioniert (und ich habe auch Probleme, was ich in diesen neuen Controller aufnehmen sollte). Ich habe meiner Routes-Datei Folgendes hinzugefügt:
Ressourcen: Registrierungen
Ressourcen: Einladungen
Ressourcen: Projekte
devise_for: Benutzer
devise_scope: Benutzer macht
get 'Benutzer / sign_up /: invitation_token' = & gt; "Registrierungen # neu"
Ende
Was stelle ich in diesen neuen Registrations-Controller, um die Funktionalität des Original-Controller für Geräte / Registrierungen nachzuahmen?
Fügen Sie in Ihrem Benutzermodell eine Überprüfung hinzu, bei der Sie prüfen, ob die E-Mail-Adresse des Nutzers in einer Beta-Einladungsliste enthalten ist.
Diese SO ist sehr ähnlich: Whitelisting mit Devise ... Ich habe dort ähnlichen Code hinzugefügt, es ist relevant hier:
%Vor%Tags und Links ruby-on-rails devise ruby-on-rails-plugins