Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

状況

<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のルーティングを極める (後編)

以上です。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away