why does my failed form submission not redirect to the originating form page?


I have the following:

GET /account/create

POST /account/oncreate

My create action looks like:

def create

@user = User.new


def oncreate

@user = User.new(params)

if @user.valid?


render ‘create’



But when the form submission submits and fails, the browser url is on /account/oncreate

Why is that? I want it to continue to display /account/create

That is better as
render action: 'create'
render :action => 'create'
but I would have expected an error if it did not work. Are you sure
the validation is failing? Put some debug code after the if line, if
you use puts then it will be printed to the server terminal window.

Also it is normally better to use the standard actions new and create
rather than create and oncreate. If you have not already done so then
work right through a good tutorial such as railstutorial.org (which is
free to use online) which will show you the basics of rails.



If you’re only rendering a different view (as in the else branch above), the URL is not going to change to reflect that.

–Matt Jones