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

Hi,

I have the following:

GET /account/create
POST /account/oncreate

My create action looks like:

def create
@user = User.new
end

def oncreate
@user = User.new(params)
if @user.valid?

else
render ‘create’
end
end

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

On 8 May 2014 14:13, S Ahmed [email protected] wrote:

@user = User.new
end

def oncreate
@user = User.new(params)
if @user.valid?

else
render ‘create’

That is better as
render action: ‘create’
or
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.

Colin

Colin

On Thursday, 8 May 2014 09:13:48 UTC-4, Gitted wrote:

def create
end

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

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 J.