Environnement d'exploitation Ruby 2.6.5 Rails 6.0.3.2
Il était difficile de comprendre ce qui se passait en raison de l'imbrication du routage, je l'ai donc posté pour ma propre confirmation.
routes.rb
Rails.application.routes.draw do
resources :hoges do
resources :fugas, only: [:index]
end
end
Dans le code ci-dessus, les fugas sont imbriqués pour les hoges, et lorsque j'exécute des itinéraires de rails sur le terminal, cela ressemble à ceci:
Prefix ➡︎ hoge_fugas Verb ➡︎ GET URI Pattern ➡︎ /hoges/:hoge_id/fugas(.:format) Controller#Action ➡︎ fugas#index
Bien sûr, autre que ce qui précède est également affiché, mais cette fois seule la partie imbriquée sera traitée. Cela seul n'est pas facile à comprendre, alors comparons-le au cas où le routage n'est pas imbriqué.
routes.rb
Rails.application.routes.draw do
resources :hoges
resources :fugas, only: [:index]
end
Le code ci-dessus n'est pas imbriqué, contrairement au code précédent. Maintenant, exécutez des itinéraires de rails sur le terminal comme auparavant et vérifiez la même partie.
Prefix ➡︎ fugas Verb ➡︎ GET URI Pattern ➡︎ /fugas(.:format) Controller#Action ➡︎ fugas#index
Vous pouvez voir que le préfixe et le modèle d'URI sont différents par rapport au précédent. Le préfixe est une description simple du modèle d'URI, nous nous concentrerons donc uniquement sur le modèle d'URI.
Lorsqu'il est imbriqué URI Pattern ➡︎ /hoges/:hoge_id/fugas(.:format) Si non imbriqué URI Pattern ➡︎ /fugas(.:format)
En d'autres termes, on peut dire que l'imbrication de routage est effectuée pour changer le modèle d'URI. Cependant, cette phrase est difficile à comprendre, je vais donc l'expliquer un peu plus en détail.
Vous devrez spécifier hoge_id pour que l'action d'index du contrôleur fugas fonctionne car le modèle d'URI a changé en raison de l'imbrication. Par conséquent, vous pouvez mettre hoge_id dans les paramètres. En d'autres termes, j'ai mentionné plus tôt que l'imbrication du routage sert à changer le modèle d'URI, mais elle peut être reformulée comme ** pour mettre les informations d'identification du côté d'imbrication (hoge cette fois) dans les paramètres **. Je peux le faire.
En mettant les informations d'id du côté imbriqué (hoge cette fois) dans les paramètres, il est possible de gérer les informations du côté imbriqué dans le contrôleur du côté imbriqué (fuga cette fois).
Recommended Posts