提交新对象的表单时 - 转到另一个路径

时间:2013-12-09 06:14:43

标签: ruby-on-rails forms

我对在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中呢?

帮助?

由于

2 个答案:

答案 0 :(得分:1)

这是正常的。您正在响应控制器中的事件方法。仅仅因为你从另一个名字的文件中获取html并不意味着url会改变。如果您希望更改网址,最简单的方法是重定向到新网页而不是呈现网页

答案 1 :(得分:1)

这是完全正常的,这里没什么可做的。使URL保持不变将改变Rails内部的工作方式 - 这真的不值得这样做。