Rails voorziet in RESTful routing voor resources.Routes kunnen zowel enkele resource of meervoudige resources definiëren om routes van de applicatie te genereren.
Er is een logisch verschil dat in overweging moet worden genomen bij het selecteren van resource
of resources
bij het genereren van routers.
Gebruik van resources in Rails routes
Laten we eens kijken naar de routes die worden gegenereerd wanneer we resources
in Rails routes gebruiken.
HTTP Verb | Path | Controller#Action | Gebruikt voor |
---|---|---|---|
GET | /products | products#index | toont een lijst van alle producten |
GET | /products/new | products#new | terugkeer een HTML-formulier voor het maken van een nieuw product |
POST | /products | products#create | maakt een nieuw product |
GET | /products/:id | products#show | tonen van een specifiek product |
GET | /products/:id/edit | products#edit | retourneert een HTML-formulier voor het bewerken van een product |
PATCH/PUT | /products/:id | products#update | bijwerken van een specifiek product |
DELETE | /products/:id | products#destroy | delete a specific product |
Gebruik van resource in Rails routes
Laten we een voorbeeld nemen van gebruiker profile
voor een gebruiker die is ingelogd op website met behulp van Rails applicatie.Gebruikersprofiel wordt verondersteld een entiteit (resource) te zijn om aan te werken wanneer de gebruiker is ingelogd.We zouden niet willen dat de eindgebruiker het profiel ID
van de gebruiker kent.Dus,
- Om het profiel te bekijken, moet de route iets zijn als
www.example.com/profile
- Om het profiel te bewerken, moet de route iets zijn als
www.example.com/profile/edit
etc.
We kunnen routes definiëren voor profile
resource zoals hieronder gegeven.
HTTP-werkwoord | Path | Controller#Action | Gebruikt voor |
---|---|---|---|
GET | /profile/new | profiles#new | return een HTML formulier voor het aanmaken van een nieuw profiel |
POST | /profile | profiles#create | create a new profile |
GET | /profile | profiles#show | display a specifiek profiel |
GET | /profile/edit | profiles#edit | retourneer een HTML-formulier voor het bewerken van een profiel |
PATCH/PUT | /profile | profiles#update | update a specific profile |
DELETE | /profile | profiles#destroy | delete a specific profile |
We kunnen zien dat enkelvoudige resource routes geen ID
van de resource hebben.Bovendien leidt het nog steeds verzoeken naar de meervoudige controllernaam.
Rails gidsen suggereren:,
Soms, heb je een bron die clients altijd opzoeken zonder te verwijzen naar een ID. Bijvoorbeeld, je zou willen dat /profile altijd het profiel toont van de huidige ingelogde gebruiker. In dit geval kunt u een enkelvoudige bron gebruiken.