2010-12-03 18 views
0

Ich habe ein Formular, das ich mit Formtastic in Rails 3 erstellt habe. Das Formular wird an die Aktion #create von ClientsController übergeben. Wenn das Speichern erfolgreich ist, leitet der Controller auf eine "Danke" -Seite um. Wenn das Speichern nicht erfolgreich ist, wird auf die Seite umgeleitet, auf der das Formular eingebettet ist. Ich möchte in der Lage sein, die Validierungsfehler inline auf der Formularseite anzuzeigen, aber nach der Weiterleitung zu dieser Seite wird das Fehlerobjekt leer zurückgegeben.Formularüberprüfungsfehler in Rails 3

Was kann ich tun, damit ich die Validierungsfehler auf dem Formular anzeigen kann?

Hier ist der Code vom Controller.

if client.save && event.save 
    redirect_to "/thank-you" 
else 
    redirect_to :back 
end 

Einige weitere Details: Ich bin mit RefineryCMS so keine Aussicht dort für die Seite ist, wo die Form ist, und ich kann daher nicht render die Aussicht.

Antwort

1

Sie müssen Ihre Fehler in Sitzung speichern.


if client.save && event.save 
    session[:client_create_errors] = nil 
    redirect_to "/thank-you" 
else 
    session[:client_create_errors] = client.errors 
    redirect_to :back 
end 

jetzt können Sie auf Fehler Objekt von anywere mit session[:client_create_errors]

1

Warum nicht:

render :action => 'name-of-the-view-the-form-is-in' 

anstelle des redirect_to :back?

+0

Sorry, sollte ich erwähnt habe, dass ich RefineryCMS bin mit, so werden die Seiten in der Datenbank gespeichert. Es gibt keine Ansicht für die Seite. – picardo