#前提・実現したいこと
ProgateでRuby on Rails5の学習をしております。
ルーティングのURL部分に「:」を用いて「posts/:id」と指定することで、「/posts/1」でも「/posts/2」でもshowアクションにいくようにすることができます。
「posts/:id」と書くと「/posts/◯◯」のような全てのURLが該当します。
という部分があり、なぜこのような振る舞いができるのかがわかりません。
データベースは一つのクラスで、そこからインスタンスを生成しているため、:idというインスタンス変数を持っている。ということなのか?と考えましたが、次のスライドで
「posts/:id」というルーティングは「posts/index」より下に書かなければいけません。
ルーティングは合致するURLを上から順に探します。そのため「posts/index」よりも上に書くと、「localhost:3000/posts/index」というURLは「posts/:id」というルーティングに合致してしまいます。
とあったためわからなくなってしまいました。
#発生している問題
ルーティングでの:とは何なのでしょうか?また、なぜ:idでindexに合致するのでしょうか?
#該当のソースコード
rb
1 get "posts/:id" =>"posts#show"
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/02/19 04:58
2020/02/19 06:43
2020/02/19 06:44
2020/02/19 06:48
2020/02/19 11:08