Rails routes rozdíl mezi resource a resources

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.

resources :products

.

.

.

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.

resource :profile
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

.