LoginSignup
3
3

More than 5 years have passed since last update.

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

Last updated at Posted at 2019-03-06

状況

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

以上です。

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3