So fügen Sie einen Rückruf hinzu, um ein Konto für den registrierten Benutzer zu erstellen.
Gerätedateien (registrations_controller.rb) befinden sich unter controllers / devise Mein Benutzermodell hat die Beziehung has_many: accounts (und das account-Modell hat gehört zu: user)
Zuerst weiß ich nicht, wo ich den Callback hinzufügen soll (welche Datei?)
Wie erstelle ich dann automatisch ein neues Konto mit der richtigen Benutzer-ID des registrierten Benutzers?
Vielen Dank im Voraus.
Sie können den Registrierungs-Controller des Geräts überschreiben und Callback hinzufügen, um ein Konto mithilfe von Filtern zu erstellen. Denken Sie daran, die Datei registrations_controller.rb
zu nennen %Vor%dann in Ihrem routes.rb sagen Gerät zu übersteuerten Controller für die Registrierung verwenden
%Vor%Ich benutze beide Ansätze.
after_create im Modell, um zugehörige Daten zu erstellen und %Code% Im RegistrationsController (wie @naveed)
weil ich im after_create callback die Fehlerausnahme erhalten habe
after_filter :send_notification_mailer, only: :create
Beim Senden mit Active Job die Bestätigungs-E-Mail im Hintergrund mit sidekiq, weil der Benutzer sie manchmal nicht erhalten hat.
Öffnen Sie zuerst Ihre Version von devise mit bundle open devise
. Schau dir die App / controllers / devise / registrations_controller.rb an. Sie werden wahrscheinlich eine Methode sehen, die in der create-Methode aufgerufen wird, wenn sich ein Benutzer erfolgreich registriert. Für meine Version (3.5.2) ist es sign_up
.
In Routen benötigen Sie
%Vor%Sie können Ihren eigenen RegistrationsController wie folgt definieren:
%Vor%Tags und Links ruby-on-rails-3 devise callback