Rails poskytuje RESTful routing pro resources.Routes může definovat buď jeden resource nebo více resources pro generování routes aplikace.
Existuje logický rozdíl, který je třeba zvážitpři výběru resource
nebo resources
při generování routerů.
Použití resources v Rails routes
Podívejme se na routes generované při použití resources
v Rails routes.
HTTP Verb | Path | Controller#Action | Used for |
---|---|---|---|
GET | /products | products#index | zobrazí seznam všech produktů |
GET | /products/new | products#new | vrátí formulář HTML pro vytvoření nového produktu |
POST | /products | products#create | vytvořit nový produkt |
GET | /products/:id | products#show | zobrazit konkrétní produkt |
GET | /products/:id/edit | products#edit | vrátit formulář HTML pro úpravu produktu |
PATCH/PUT | /products/:id | products#update | update a specific product |
DELETE | /products/:id | products#destroy | delete a specific product |
Použití zdroje v Rails routes
Podívejme se na příklad uživatele profile
pro uživatele přihlášeného na webové stránce pomocí aplikace Rails.Profil uživatele má být entita (prostředek), se kterou se má pracovat, když je uživatel přihlášen. nechtěli bychom, aby koncový uživatel znal profil ID
uživatele. tedy
- Pro zobrazení profilu by měla být trasa něco jako
www.example.com/profile
- Pro úpravu profilu by měla být trasa něco jako
www.example.com/profile/edit
atd.
Můžeme definovat trasy pro prostředek profile
, jak je uvedeno níže.
HTTP Verb | Path | Controller#Action | Používá se pro |
---|---|---|---|
GET | /profile/new | profiles#new | vrátí HTML. formulář pro vytvoření nového profilu |
POST | /profile | profiles#create | vytvořit nový profil |
GET | /profile | profiles#show | zobrazit a konkrétní profil |
GET | /profile/edit | profiles#edit | vrátí HTML formulář pro úpravu profilu |
PATCH/PUT | /profile | profiles#update | update a specific profile |
DELETE | /profile | profiles#destroy | delete a specific profile |
Můžeme vidět singulární trasy prostředků nemají ID
prostředků.Navíc stále směruje požadavky na plurálový název řadiče.
Průvodce systémem Rails navrhuje:,
Někdy máte prostředek, který klienti vždy vyhledávají bez odkazu na ID. Například byste chtěli, aby /profile vždy zobrazoval profil aktuálně přihlášeného uživatele. V takovém případě můžete použít jediný prostředek.
Rozdíl mezi prostředkem a zdroji
.