表单提交后的Rails再次重定向到空表单页面

时间:2014-02-03 06:12:52

标签: html ruby-on-rails forms post http-redirect

我正在构建一个包含简单联系表单的页面。用户提交表单后,我希望它重定向回到完全相同的页面,然后刷新成功消息。但我没有使用节目的原因是因为我想要一个全新的联系表格(而不是他们已经提交的表格),以防他们想要提交另一个请求。但是,redirect_to似乎不起作用。

感谢您的帮助!

我的控制器(注意我已尝试渲染而不是redirect_to)

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

我的观点

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

1 个答案:

答案 0 :(得分:4)

将其更改为

if @contact.save
  flash[:success] = "Thanks! I'll be in touch soon!"
  redirect_to :action => 'new'
else
  render :action => 'new'
end

redirect_to期望网址/相对路径为字符串,或者指向网址的哈希

例如:

"/user/10"
"http://localhost:3000/users/new" 
or  {:controller => 'users', :action => 'new'}

但是当你提出redirect_to 'new'时,它正在寻找'/new'