Rails reitit ero resurssin ja resurssien välillä

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.

Resurssin ja resurssien ero