Rails after form submitted redirect to empty form page again
forms, html, http-redirect, post, ruby-on-rails
Solution
Change it to
if @contact.save
flash[:success] = "Thanks! I'll be in touch soon!"
redirect_to :action => 'new'
else
render :action => 'new'
end
`redirect_to` expects a url/relative path as a string, or a Hash that points to a url
eg:
"/user/10"
"http://localhost:3000/users/new"
or {:controller => 'users', :action => 'new'}
But when you give `redirect_to 'new'`, It is looking for `'/new'`
Problem
I'm building a page with a simple contact form. After users submit the form, I'd like it to redirect back to that exact same page and then flash a success message. But the reason I'm not using a show is because I want to have a brand new contact form (not what they already submitted), in case they want to submit another request. However, the redirect_to doesn't appear to be working. Thanks for the help! My controller (note I've tried render instead of redirect_to as well) ``` def create @contact= Contact.new(secure_params) if @contact.save flash[:success] = "Thanks! I'll be in touch soon!" redirect_to 'new' else render 'new' end end ``` My view ``` <body> <h1> opening text </h1> <!--prints success message, making it a hash just in case other messages need to be added in the future --> <% flash.each do |key, value| %> <div class="alert alert-<%= key %>"><%= value %></div> <% end %> <%= form_for @contact do |f| %> <!--form code below --> ```