发生了一些非常有趣的事情......我的控制器有两个单独的检查,它们允许提交表单(下面的代码很简单,还有其他的事情发生)。如果任一检查点失败,则会重新呈现new
页面。
以下是代码:
def create
if checkpointone == fail
render 'new'
else
if checkpointtwo == fail
render 'new'
else
redirect_to action: 'success'
end
end
end
这是我遇到的有趣流量问题:
checkpointone
并通过checkpointtwo
new
页面使用原始参数和错误消息成功重新呈现checkpointone
再次失败,或者checkpointtwo
失败,但<{1}}失败了)No route matches [PATCH] "/requests"
但是为什么它总是突然寻找PATCH呢?谁告诉它?奇怪的是,如果我从checkpointtwo
中的失败和checkpointone
中的传递开始,从那时起,我可以以各种组合进行任意数量的失败和重新提交,我将永远得到正确的操作:new
页面使用原始参数和错误消息重新渲染。
观看代码段:
<%= form_for @requestrecord, :url => { action: 'create' }, :html=> {:id => 'form'} do |f| %>
路线代码片段:
get 'requests/new', to: 'requests#new', as: 'new_request'
post 'requests', to: 'requests#create'
答案 0 :(得分:1)
在Rails 4中,PATCH用于更新。可能是即使检查点失败也会创建您的记录。这将导致Rails认为后续请求是更新请求,而不是创建请求。