编辑验证错误后,重新加载页面会导致路由错误

时间:2018-01-11 10:52:35

标签: routing ruby-on-rails-5

我有一个典型的维护,就像脚手架那样,但编辑和更新路线不是用resources生成的:

get "users/edit", as: "edit_user"
patch "users/update"

update操作失败时,我render :edit显示错误,然后,如果我重新加载页面,浏览器会发送带有更新URL(POST)的GET,这会产生路由错误...试着解释一下:

1)GET:http://localhost:3001/ca/users/edit

2)用户编辑并导致验证错误并提交

3)POST:http://localhost:3001/ca/users/update =>错误=>渲染:编辑

4)浏览器显示编辑表单,在URL方向上有" ... users / update" (不是" ...用户/编辑")

5)用户重新加载页面(无意中F5)=>路由错误

这会导致路由错误,因为浏览器会向GET发送一个与POST对应的网址(" .. users / update")

我知道用resources :users这个问题不存在,不会崩溃,浏览器发送一个POST(在F5之后),我的问题是用我自己的路由浏览器发送一个GET

当用户在render :edit之后重新加载页面时,Rails如何发送PATCH或POST?

0 个答案:

没有答案