🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

2回答

398閲覧

【Ruby on Rails】 "posts/:id" と "posts/index" の routes.rb に各順番について

退会済みユーザー

退会済みユーザー

総合スコア0

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2021/03/07 04:42

Ruby on Rails の routes.rb に

Ruby

1 2get "posts/:id" => "posts#show" 3get "posts/index" => "posts#index" 4 5

という順番で書くと,posts/:id が,posts/index にマッチしてしまうので

Ruby

1 2get "posts/index" => "posts#index" 3get "posts/:id" => "posts#show" 4

と書かないといけないとあったのですが,なぜ,,posts/:id が,posts/index にマッチしてしまうのでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

:idと対応するものは数値に限られません

投稿2021/03/07 07:36

maisumakun

総合スコア145970

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2021/03/07 07:59

:id に対応するのは,数値だけではないのですね!ありがとうございます!
guest

0

posts/index が posts/:id に、ではないでしょうか。

その理由は、上からの記載順にマッチするからです。
2.2 CRUD、動詞、アクション

get "posts/:id" get "posts/index"

この順番だと index の部分が :id の部分と解釈されちゃいます。

投稿2021/03/07 07:31

neko_daisuki

総合スコア2090

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問