Best practices: form fails, now what...

Situation: A user submits a form. The inputs are in some way invalid. You present the original form.

Question: How do you present the original form as the user had it filled out (so they can correct it) rather than in its original state (requiring them to re-enter everything).

I have more or less hackish ways of doing this, but wondered how other people were doing it.

-faisal

It's easiest if you post back to the same action that the form is in.
Just make sure you set all the class variables. eg:

def login
@user = params[:user] || User.new
if request.post?
#login, redirect
end
end