2011-01-11 10 views
7

Ich möchte meinen Registrierungscontroller für Devise in Rails anpassen. Ich verstehe, dass Sie einen Controller wie folgt erstellen müssen:Custom Devise Controller

Nun, das ist alles sehr gut. Aber dann sagen wir, ich möchte vollständig kontrollieren, was in meiner #create Aktion passiert. Wie mache ich das? Wie erstelle ich manuell ein Modell und übergebe es alle Parameter? Würde Account.create (params [: account]) problemlos damit umgehen? Gibt es irgendwelche internen Sachen, die ich wissen sollte oder ist meine einzige Option, #super in der Aktion zu nennen?

Antwort

5

Solange Sie Ihre erforderlichen Felder erfüllen Sie Account.create in Ihrem Beispiel nennen können, ich bin ziemlich sicher, die Standard Devise erforderlichen Felder anmelden werden, Passwort und password_confirmation

Wir diesen Bildschirm in einer CRUD tun für Erstellen von Benutzern entwickeln,

@admin = Admin.new(params[:admin]) 
if @admin.save 
    redirect_to admin_admins_path, :notice => 'New Administrator has been added' 
else 
    render :action => "new" 
end 

und Sie wollen nicht die Devise Sitzungssteuerung zu erweitern, ist ein normaler Controller Application erstreckt fein oder Sie können Devise :: RegistrationsController erweitern und die Methoden überschreiben Sie in ein registrations_controller.rb zwicken wollen Datei

+0

Ja , Vielen Dank. SessionsController war ein Copypaste Tippfehler, ich verstehe, es sollte RegistrationsController sein. – snitko

1

Sie können auch einen Blick auf die Quelle auf Github haben, wenn Sie sicher sein wollen, sind Sie Dinge richtig, und sicher sein, zwingende Sie verpassen keine Verarbeitung ...

https://github.com/plataformatec/devise/tree/master/app/controllers

+1

P.S. - Beachten Sie, dass die URL die Version 1.3.0 angibt. Achten Sie darauf, zur Quelle der von Ihnen verwendeten Version zu navigieren. – sands