Ruby on rails を学習中の方の参考にしてもらえたら嬉しいです。
アプリケーションを作成している時に出てくるエラーとその解決方法について掲載します。少しでも参考にしていただけると幸いです。
今回のエラーではNo route matches {:action=> "show", controller=> "articles", id=>nil}, missing required keys: [id]
というエラーの解決方法をお話しします。
エラーまでの流れ
アプリケーション内の記事を削除した後、今までトップページに画面遷移してしまっていたので、記事一覧画面にページ遷移するようにコードを変えました。
以下の画像のようにredirect_to root_path,
と書くとTOPページに戻るようにルーティングがされています。
このルーティングを変えたらエラーが出てしまいました。
▼変更したコードは以下の画像です。
上記のようにredirect_to article_path(@article)
としましたが、
上記のようなエラーが出ました。
エラーの解決方法
色々試しましたが、解決方法はシンプルでした。
要はルーティングが正しくないということです
http://localhost:3000/rails/info/routes
で、routesを確認します。
今変更したredirect_to article_path(@article)
というのは削除した記事に画面遷移させているということになってしまうのでエラーが出ていました。
なのでredirect_to articles_path(@article)
というようにsを足してarticlesのindexに遷移するようにパスを変更しました。
最後に
ということで、今回は投稿した記事を削除した後の画面遷移で出たエラーを解決しました。
ルーティングを確認すると解決できることもあるので見直しが必要ですね。
そして、ChatGPTに聞くとエラーのアタリをつけてくれるので、エラー解決までの時間が短縮されたように感じます。
いかがでしたでしょうか?
他にも記事を発信していきますので、私の QiitaやTwitterをフォローしていただけると嬉しいです。
個別の質問もぜひ歓迎します。
私自身、初学者ではありますが、1歩先を行くものとして回答できたらと思います。
それでは。