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.
resources :products
| 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.
resource :profile
| 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.