Try redirect_to :action => 'new' instead of just rendering, this will save the url, but the error information will be lost (unless you put it in flash ).
Another option is to submit the URL form, which is used to display it. At the beginning of the action, you check if there is any data that you need to process. If the processing went fine, you redirect_to somewhere else, otherwise you wonβt do anything - the form will be displayed along with all errors. This, I suppose, is not very Railsy, ββbut it should work the way you want.
source share