Rails tarjoaa RESTful reitityksen resursseille.Reitit voivat määritellä joko yksittäisen resurssin tai useita resursseja sovelluksen reittien luomiseksi.
On olemassa looginen ero, joka tulisi ottaa huomioonvalittaessa resource
tai resources
, kun luodaan reitittimiä.
Resurssien käyttö Railsin reiteissä
Katsotaanpa reittejä luodut reittit, kun käytämme Railsin reittejä käyttäen resources
.
HTTP-verbi | Path | Controller#Action | Used for |
---|---|---|---|
GET | /products | products#index | näyttää listan kaikista tuotteista |
GET | /products/new | products#new | palauttaa HTML-lomakkeen uuden tuotteen luomista varten |
POST | /products | products#create | luo uusi tuote |
GET | /products/:id | products#show | näyttää tietyn tuotteen |
GET | /products/:id/edit | products#edit | palauttaa HTML-lomakkeen, jolla voi muokata tuotetta |
PATCH/PUT | /products/:id | products#update | update a specific product |
DELETE | /products/:id | products#destroy | delete a specific product |
Resurssin käyttö Rails-reiteissä
Katsotaanpa esimerkkinä Rails-sovelluksen avulla verkkosivulle kirjautunut käyttäjä profile
.Käyttäjäprofiilin on tarkoitus olla kokonaisuus (resurssi), jota työstetään, kun käyttäjä on kirjautunut sisään.Emme haluaisi loppukäyttäjän tietävän käyttäjän profiilia ID
.Näin ollen,
- Profiilin tarkastelemiseksi reitin pitäisi olla jotakin
www.example.com/profile
- Profiilin muokkaamiseksi reitin pitäisi olla jotakin
www.example.com/profile/edit
etc.
Voidaan määritellä reittejä resurssin profile
osalta alla esitetyllä tavalla.
HTTP Verb | Path | Controller#Action | Used for | |
---|---|---|---|---|
GET | /profile/new | profiilit#uusi | toimintopolku | palauttaa HTML. lomake uuden profiilin luomista varten |
POST | /profile | profiles#create | luo uusi profiili | |
GET | /profile | profiles#show | näyttää tietty profiili | |
GET | /profile/edit | profiles#edit | palauttaa HTML-lomakkeen profiilin muokkaamista varten | |
PATCH/PUT | /profile | profiles#update | päivittää tietyn profiilin | |
DELETE | /profile | profiles#destroy | poistaa tietyn profiilin |
Näemme, että yksittäiset resurssin reitit eivät ole ID
resurssin.Lisäksi se ohjaa edelleen pyynnöt monikossa olevaan ohjaimen nimeen.
Rails-oppaat suosittelevat:,
Joskus sinulla on resurssi, jota asiakkaat etsivät aina viittaamatta ID:hen. Haluat esimerkiksi, että /profile näyttää aina kirjautuneen käyttäjän profiilin. Tässä tapauksessa voit käyttää yksittäistä resurssia.