Überschreiben Entwickeln, die eine Eintragung controller zu ermöglichen, für die ein redirect nach erfolgreicher sign_up getan wurde
Ich habe alle über dem Platz, und fand eine Menge info... aber nichts funktioniert für mich, und ich verstehe es nicht 🙁
Weiß ich, dass Sie annehmen, um das überschreiben der Eintragung controller, wie diese:
class Users::RegistrationsController < Devise::RegistrationsController
def after_sign_up_path_for(resource)
authors_waiting_path
end
end
Dann nach dem Beispiel zeigte sich von Tony Amoyal http://www.tonyamoyal.com/2010/07/28/rails-authentication-with-devise-and-cancan-customizing-devise-controllers/, ich sollte das ändern, meine Routen zu aktualisieren, der Zugriff auf den neuen controller:
devise_for :users, :controllers => { :registrations => "users/registrations" } do
#get '/author/sign_up', :to => 'devise/registrations#new'
#get '/client/sign_up', :to => 'devise/registrations#new'
get '/author/sign_up', :to => 'users/registrations#new'
get '/client/sign_up', :to => 'users/registrations#new'
end
Ja, ich habe etwas, was ein bisschen seltsam hier, weil ich bin, fangen einige spezifische Pfad, senden Sie auf der Registrierung-Seite, dies ermöglicht es mir, effektiv 2 Registrierung-Szenario.
Ich bemerkte was ich vor hatte, ich hatte überschrieben die Anmeldung controller.
Selbst mit all diesen und meine authors_waiting_path ein Gültiger Pfad, es hält nur auf gehen, um die sign-in-Seite nach der Registrierung 🙁
Das ist wirklich frustrierend.
Alex
edit: ich fand auch diese auf das Gerät-wiki: https://github.com/plataformatec/devise/wiki/How-To:-Redirect-after-registration-(sign-up)
Aber ich habe keine Ahnung, wo Sie definieren diese create-Methode ? soll ich das überschreiben der session-controller ???
edit 2:
Lege ich eine dummy-überschreiben des controller:
class Pouets::RegistrationsController < Devise::RegistrationsController
def after_sign_up_path_for(resource)
authors_waiting_path
end
def new
super
end
def create
puts "was here"
super
end
def edit
super
end
def update
super
end
def destroy
super
end
def cancel
super
end
end
Und ich habe nie "war hier" in meinen logs.... Ich habe wirklich das Gefühl, dass es völlig ignoriert das überschreiben... ich muss etwas falsch machen 🙁
Rails 3.0.3 und entwerfen 1.1.5, Letzte version von beiden, falls ich richtig bin
InformationsquelleAutor Alex | 2011-01-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ok... ich bin in der Lage, um es zu überschreiben, so sollten Sie entweder :0
Erstellen Sie im Ordner app/controllers/Benutzer
dort registrations_controller.rb: (option mit session - will es aber versuchen sign_in und später redirect - es kann sein, nicht das beabsichtigte Verhalten für Sie ). Zudem ist dieser aus entwickeln, wiki, und ich bin nicht sicher, ob es funktioniert
starten Sie die Anwendung (nur sicherstellen, dass Sie don ' T trust anything)
Alles in allem müssen Sie überschreiben Erstellen, Wenn Sie möchten, leiten Sie nur die Benutzer... wenn Sie wollen, definieren einige komplexere Szenario sollten Sie monkeypatch sign_in_and_redirect
so wird der controller sieht aus wie
zweite option versuchen monkeypatch Helfer ....
Edit: ich code Hinzugefügt
HM, meine schlechte, Sind Sie ziemlich sicher, dass Ihr code korrekt hiting dieser controller? Vielleicht fügen Sie einige erhöhen "Test" def neu und prüfen Sie, ob es korrekt gerendert wird
Überprüfen Sie gegebenen Lösung. Wenn Sie unglücklich sind ... versuchen add session-var nach erfolgreicher sign_up => "#{scope}.return_to" ... es sollte eine Weiterleitung entweder
Keine pb, ich aktualisiert mein post nochmal, siehe edit 2. Ich glaube wirklich nicht, es ist sogar zu schlagen, mein controller, auch hart, da sind die Routen für es und alle... Eine Sache, die ich don ' T erhalten, wenn ich das überschreiben, soll ich die neu erstellen, die alle Methoden und call super ? oder juste, den ich will ? Könnten Sie mir zeigen, was die ganze Datei Aussehen sollte ? Ich bin wahrscheinlich einige rookie Annahmen hier 🙁
InformationsquelleAutor Piotr Mąsior
Habe ich versucht, die obige Lösung, und während es funktioniert, Lesen entwickeln code, ich habe festgestellt, dass alles, was Sie wirklich brauchen, um zu Unterschreiben-nur registrierte Benutzer und-Weiterleitung:
Code:
War ein bisschen schwer zu finden, wenn ich es brauchte, aber das ist alles. Bin ich eigentlich Schreibe es hier, falls jemand anderes es braucht.
InformationsquelleAutor Krule