资源创建失败后的路由错误

时间:2011-10-25 15:31:42

标签: ruby-on-rails-3.1

有这个控制器:

def create
@company = Company.new(params[:company])
respond_to do |format|
  if @company.save
    format.html { redirect_to @company, notice: 'Company was successfully created.' }
    format.json { render json: @company, status: :created, location: @company }
  else
    format.html { render action: "new" }
    format.json { render json: @company.errors, status: :unprocessable_entity }
  end
end
end

有人知道为什么在尝试保存未通过验证的记录后,rails会导致“新”操作,但浏览器栏中显示的url是索引的路径(即/ companies )?

干杯!!

1 个答案:

答案 0 :(得分:0)

发布到create时会发生/companies操作。如果失败,而不是重定向到新页面,它只会呈现new操作。这是Rails的REST操作的标准。

更新记录时会看到类似的行为。编辑表单将向公司的资源(例如/companies/1)提交PUT请求,如果验证失败,它将呈现edit操作,而不是重定向到/companies/1/edit