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