Edited at

【Rails】pathヘルパーでURLが/:idではなく.idになってしまった時に確認すること


状況

<td><%= link_to '詳細', inquiries_path(inquiry) %></td>

上記のようにlink_toメソッドでURLを生成すると想定とは異なるURLが出来てしまった

http://xxx.com/inquiries.id

本当は下記のようにしたい。

http://xxx.com/inquiries/:id


確認すること

そんなとき、まずはpathヘルパーが単数形になっているか確認しよう。

もし複数形になっていたら単数形に直そう。これで解消するはず。

<td><%= link_to '詳細', inquiry_path(inquiry) %></td>


それでも解消しなかったら

今回がそうだった。変更したら今度は

undefined method

とエラーが出てきた。

次はルーティングを確認。

  get '/inquiries', to: "inquiries#index"

get '/inquiries/:id', to: "inquiries#show"

これを変更。

resources :inquiries, only: [:index, :show]

これで無事治った!

おそらく単数形リソースと複数形リソースの違いでpathヘルパーにも影響が出たのではないか。

やはりそのようでした!詳しくは下記をご覧いただくと良いと思います

Railsのルーティングを極める (後編)

以上です。