2009-08-01 13 views
0

Ich muss die integrierten Validierungen auf dem Login-Feld vor dem eigentlichen Erstellen des Benutzerdatensatzes ausführen, gibt es eine Möglichkeit, dies in Authlogic zu tun? Der Grund dafür ist, wenn ein Benutzer eine neue Anmeldung eingibt, wird AJAX aufgerufen, um zu überprüfen und zu sehen, dass die Anmeldung einmalig, gültig usw. ist. Sobald dies erledigt ist, kann der Benutzer seine E-Mail eingeben, um die Anmeldung zu beanspruchen, es ist ein 2 Schritt verarbeiten.Authlogic run Validierungen bei der Anmeldung vor dem Erstellen Aktion

Antwort

1

Das Benutzermodell verwendet ActiveRecord-Validierungen. Dies ist nicht spezifisch für Authlogic. Wenn Sie die Validierungen für ein Modell ausführen möchten, können Sie user.valid? aufrufen. Dies gibt true oder false zurück, je nachdem, ob das gesamte Modell gültig ist. Es füllt jedoch auch das Objekt user.errors aus, damit Sie überprüfen können, ob ein bestimmtes Attribut gültig ist.

Hier ist ein Code, der RJS verwendet, um den AJAX zu tun. Aber Sie können alles verwenden und organisieren, wie Sie wollen.

user = User.new(params[:user]) 
user.valid? # we aren't interested in the output of this. 
error = user.errors.on(:login) 
if error 
    page.insert_html :before, "user_login", content_tag(:span, error, :class => "error_message") 
end 

Sie können in meiner Mastering Rails Forms Screencasts Serie interessiert sein, wo ich dieses Thema in der zweiten Folge decken.

+0

Dank Ryan habe ich später gelernt, dass Authlogic ActiveRecord-Validierungen nutzt und das validate_attributes-Plugin verwendet. Ihr Vorschlag ist eine gute Alternative, vielen Dank für das Teilen. – Bob

Verwandte Themen