ルーティングのネストについて。

ネストは、ある記述の中に別の記述をして、親子関係を示す方法。

ルーティングにおけるネストとは。あるコントローラーのルーティングの中に、別のコントローラーのルーティングを記載すること。

 

ルーティングでネストを利用すると、アクションを実行するためのパスで、親子関係を表現できる。

 

たとえば、tweets_controller.rbのルーティングの中に、comments_controller.rbのルーティングを記述すると、

 

URI  /tweets/:tweet_id/comments(.:format)  となる。

 

もし、ネストを利用しなかった場合は、:tweet_idのような、パスにパラメーターを含められる部分はない。

 

以上からわかるように、ルーティングにネストを利用しなければ、モデルと結びついている別モデルのid情報が送れなくなる。

 

ネストを利用すれば、id情報を含めることができる。

 

まとめると、ルーティングをネストさせるいちばんの理由は、アソシエーション先のレコードのidparamsに追加してコントローラーに送るため。