私は投稿とコメントのモデルを持っています。コメントは投稿に属し、ルートの投稿の下にネストされています。コメントは 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 にリダイレクトするため、ルーティング エラーが再び発生します。