我对在rails中提交表单有疑问。 我有一个表格:
<%= form_for Event.new, multipart: true, class: 'form' do |f| %>
在控制器中:
def create
@event = Event.new(event_params)
if @event.save
redirect_to dashboard_event_path @event
else
flash[:error] ||= 'Please fix the event\'s details'
render :new
end
处理新的Event对象。 (即/ events / new) 但是,当我发布该表单并且存在验证错误时,它将再次呈现该表单,但该url将是/ events /。那是正常的吗?我知道new的路由是/ new和create是POST到/ events,但是如何将浏览器保留在/ new url中呢?
帮助?
由于
答案 0 :(得分:1)
这是正常的。您正在响应控制器中的事件方法。仅仅因为你从另一个名字的文件中获取html并不意味着url会改变。如果您希望更改网址,最简单的方法是重定向到新网页而不是呈现网页
答案 1 :(得分:1)
这是完全正常的,这里没什么可做的。使URL保持不变将改变Rails内部的工作方式 - 这真的不值得这样做。