ActionController::UrlGenerationError in CreditCard#new ~~pathをprefixで書いた時のエラー~~


はじめに

マイページへのリンク先をprefixで書いた時にエラーでつまずいたので記録として残します。

実装したこと

hamlの = link_toでurlを"/users/#{current_user.id}"
記載してマイページに遷移するようにしていました。
"/users/#{current_user.id}"をprefixの記載に変更するために
rails routesで探しにいきました。

userとなっているのでuser_pathとして記載しました。
すると下記のエラーが発生。

No route matches {:action=>"show", :controller=>"users"}, missing required keys: [:id]
のエラーコードを見てmissing required keys: [:id]の部分に着目しました。
「idが必要だけどないよー」と言われてます。
なのでuser_pathの後に(current_user.id)を足して記述しました
結果、無事に解決しました。

修正前

= link_to "マイページ", user_path

修正後


= link_to "マイページ", user_path(current_user.id)

おわりに

これからは最初からprefixで記載する習慣をつけて行こうと思います。
今回はエラー文を読み取って割と早期に解決することができましたので
今後も冷静にエラー文を分析して解決する能力を高めていこうと思います。
何か補足事項とうございましたら、是非コメントをお願いいたします。

しょうま