我有一个帖子和评论模型。Comment 属于一个 Post,它嵌套在 Post in routes 下。评论来自 Posts#show。我的路线如下所示:
resources :posts do
resources :comments, only: [:create, :edit, :update, :destroy]
end
如果用户提交的评论未通过验证,则 URL 将如下所示:
app.com/posts/:id/comments
如果出于某种原因,用户决定在地址栏中按 Enter,则会出现路由错误:
Routing Error
No route matches [GET] "/posts/21/comments"
Try running rake routes for more information on available routes.
这让我觉得有些奇怪。我理解为什么会发生错误,但这似乎不是可用性的好主意。有没有办法防止这种情况发生?
在进行友好重定向时,这将成为一个更大的问题。当发生友好重定向时,Rails 将使用 GET 请求重定向到同一个 URL,再次导致路由错误。