質問: ### 前提 * scaffoldでpostを作成 * モデルにvalidationを設定 ### 気になること 規投稿時にValidationエラーが表示された際のURLが`localhost/posts/new`から`localhost/posts`になってしまいます。 理由は、``タグ内の`action="/posts"`と記載されているからだと思うのですが、設計に違和感があります。 本来、エラーは、`localhost/posts/new`で表示するべきな気がするのですが・・・。 エラーページでリロードすると、一覧ページが表示されてしまいますし・・・。 ### 知りたいこと1 エラーを`localhost/posts/new`で表示させるgemなどはないのでしょうか? それとも1つ1つフォームのURLを変更し、コントローラーを書き直さないといけないのでしょうか? ### 知りたいこと2 なぜこのような設計をしているのか推測でもかまわないので教えていただけないでしょうか? 勝手なイメージですがこの実装はDHHが嫌がりそうな気がします... もしどのような経緯で実装されているのかなどの記事がありましたら教えていただけると幸いです。
回答: controllerの作り方次第です。 >理由は、タグ内のaction="/posts"と記載されているからだと思うのですが とは関係ないです。 >本来、エラーは、localhost/posts/newで表示するべきな気がするのですが べきかどうかは別として、それが多いのは確かです >エラーをlocalhost/posts/newで表示させるgemなどはないのでしょうか? gemにするほどのものでは。editに表示させるケースもありますし。 controllerの手直しとviewにエラーを表示させる行の確認が必要ですが >なぜこのような設計をしているのか それにはそのアプリケーションがどんなものなのかがわからないとなんとも。