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.


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] ||
#login, redirect