A Rails RESTful útvonalakat biztosít az erőforrások számára.Az útvonalak meghatározhatnak egyetlen erőforrást vagy több erőforrást az alkalmazás útvonalainak létrehozásához.
Van egy logikai különbség, amelyet figyelembe kell venni a resource
vagy resources
kiválasztásakor az útvonalak generálásakor.
Az erőforrások használata a Rails útvonalakban
Lássuk a generált útvonalakat, amikor a resources
-t használjuk a Rails útvonalakban.
HTTP ige | Path | Controller#Action | Used for |
---|---|---|---|
GET | /products | products#index | megjeleníti az összes termék listáját |
GET | /products/new | products#new | visszaad egy HTML űrlapot egy új termék létrehozásához |
POST | /products | products#create | új termék létrehozása |
GET | /products/:id | products#show | megjelenít egy adott terméket |
GET | /products/:id/edit | products#edit | visszaad egy HTML űrlapot egy termék szerkesztéséhez |
PATCH/PUT | /products/:id | products#update | egy adott termék frissítése |
DELETE | /products/:id | products#destroy | delete a specific product |
Use of resource in Rails routes
Vegyünk egy példát a profile
felhasználóra, aki bejelentkezett a weboldalra a Rails alkalmazás segítségével.A felhasználói profilnak egy olyan entitásnak (erőforrásnak) kell lennie, amin dolgozni kell, amikor a felhasználó bejelentkezett.Nem szeretnénk, ha a végfelhasználó ismerné a felhasználó ID
profilját.Így,
- A profil megtekintéséhez az útvonalnak olyannak kell lennie, mint
www.example.com/profile
- A profil szerkesztéséhez az útvonalnak olyannak kell lennie, mint
www.example.com/profile/edit
stb.
Az profile
erőforráshoz az alábbi módon definiálhatunk útvonalakat.
HTTP Verb | Path | Controller#Action | Used for |
---|---|---|---|
GET | /profile/new | profiles#new | return an HTML. új profil létrehozására szolgáló űrlap |
POST | /profile | profiles#create | új profil létrehozása |
GET | /profile | profiles#show | display a adott profil |
GET | /profile/edit | profiles#edit | visszaad egy HTML űrlapot a profil szerkesztéséhez |
PATCH/PUT | /profile | profiles#update | egy adott profil frissítése |
DELETE | /profile | profiles#destroy | egy adott profil törlése |
Láthatjuk, hogy egyes erőforrás útvonalak nem rendelkeznek ID
az erőforrásról.Sőt, még mindig a többes számban szereplő vezérlőnévre irányítja a kéréseket.
A Rails útmutatók azt javasolják:,
Néha van olyan erőforrás, amelyet az ügyfelek mindig azonosítóra való hivatkozás nélkül keresnek. Például azt szeretné, ha a /profile mindig az éppen bejelentkezett felhasználó profilját mutatná. Ebben az esetben használhat egyetlen erőforrást.