Rails fournit un routage RESTful pour les ressources.Les routes peuvent soit définir une seule ressource ou plusieurs ressources pour générer des routesde l’application.
Il y a une différence logique qui devrait être considéréelorsque l’on sélectionne resource
ou resources
lors de la génération de routes.
Utilisation des ressources dans les routes Rails
Voyons les routes générées lorsque nous utilisons resources
dans les routes Rails.
HTTP Verb | Path | Controller#Action | Utilisé pour |
---|---|---|---|
GET | /produits | produits#index | affiche une liste de tous les produits |
GET | /produits/nouveau | produits#nouveau | renvoie un formulaire HTML pour créer un nouveau produit |
POST | /produits | produits#create | créer un nouveau produit |
GET | /produits/ :id | produits#show | afficher un produit spécifique |
GET | /produits/:id/edit | produits#edit | renvoyer un formulaire HTML pour modifier un produit |
PATCH/PUT | /produits/ :id | produits#mise à jour | mise à jour d’un produit spécifique |
DELETE | /produits/ :id | produits#destroy | supprimer un produit spécifique |
Utilisation de la ressource dans les routes Rails
Prenons l’exemple de l’utilisateur profile
pour un utilisateur connecté sur le site web en utilisant l’application Rails.Le profil de l’utilisateur est censé être une entité (ressource) sur laquelle on doit travailler lorsque l’utilisateur est connecté.Nous ne voudrions pas que l’utilisateur final connaisse le profil ID
de l’utilisateur.Ainsi,
- Pour visualiser le profil, la route devrait être quelque chose comme
www.example.com/profile
- Pour modifier le profil, la route devrait être quelque chose comme
www.example.com/profile/edit
etc.
Nous pouvons définir des routes pour la ressource profile
comme indiqué ci-dessous.
Verbe HTTP | Path | Contrôleur#Action | Utilisé pour |
---|---|---|---|
GET | /profile/new | profiles#new | renvoie un formulaire HTML pour créer un nouveau profil |
POST | /profile | profiles#create | créer un nouveau profil |
GET | /profile | profiles#show | afficher un profil spécifique |
GET | /profile/edit | profiles#edit | renvoyer un formulaire HTML pour éditer un profil |
PATCH/PUT | /profile | profiles#update | mettre à jour un profil spécifique |
DELETE | /profil | profils#destroy | supprimer un profil spécifique |
On peut voir que les routes de ressources singulières n’ont pas ID
de la ressource.De plus, il dirige toujours les demandes vers le nom pluralisé du contrôleur.
Les guides Rails suggèrent :,
Parfois, vous avez une ressource que les clients recherchent toujours sans faire référence à un ID. Par exemple, vous aimeriez que /profile affiche toujours le profil de l’utilisateur actuellement connecté. Dans ce cas, vous pouvez utiliser une ressource singulière.
Différence entre ressource et ressources
.