Entwickle mit Rails 3 und remote = true

8

Ich habe ein Problem mit dem Gerät mit einem AJAX-Login. Ich benutze die Option :remote => true und die jQuery-Version der Javascript-Helfer (https://github.com/rails/jquery-ujs). Wenn der Benutzer die richtigen Informationen eingibt, wird meine create.js.erb in der Sitzungsansicht gerendert. Das ist in Ordnung, weil ich meinen Benutzer mit JS in dieser Datei umleiten kann. Wenn jedoch ein Fehler auftritt, z.B. der Benutzer gibt falsche Informationen ein, nur die Flash-Nachrichten sind in der Antwort mit einem Fehlercode 401 - Unauthorized . Also, keine Ansicht oder create.js.erb oder etw wird gerendert. Aber ich möchte mit dieser Nachricht umgehen, indem ich sie auf der Seite zeige, damit die Benutzer Feedback bekommen, was falsch ist.

Ich habe auch versucht, meinen eigenen benutzerdefinierten Controller mit respond_to :js zu implementieren und mit der Methode :recall der Warden-Authentifizierung zu spielen. Aber es funktioniert nicht.

Kennt jemand einige Best Practices, um dieses Problem zu lösen? Oder sollte ich diese Hilfsmethoden vermeiden und nur reine jQuery für die Ajax-Aufrufe verwenden?

thx, Tux

    
23tux 28.03.2011, 14:05
quelle

2 Antworten

9

Sie könnten das jQuery-Ereignis "ajax: error" in Rails 3 verwenden. Binden Sie das Ereignis einfach an Ihr Formular.

%Vor%

Sehen Sie sich diesen Blogeintrag für weitere Details an Welche Ereignisse sind verfügbar?

    
Braden Becker 28.03.2011, 23:49
quelle
1

Hier ist meine Version

%Vor%

Er leitet den Benutzer automatisch zur Anmeldeseite um und arbeitet für alle Elemente auf der Seite.

    
montrealmike 17.06.2011 01:35
quelle