Rails-ruter forskel mellem ressource og ressourcer

Rails tilbyder RESTful-routing for ressourcer.Ruter kan enten definere en enkelt ressource eller flere ressourcer til at generere ruter i applikationen.

Der er en logisk forskel, der bør overvejes, når man vælger resource eller resources, når man genererer routere.

Brug af ressourcer i Rails-ruter

Lad os se de ruter, der genereres, når vi bruger resources i Rails-ruter.

resources :products
HTTP Verber Path Controller#Action Brugt til
GET /produkter produkter#index viser en liste over alle produkter
GET /produkter/ny produkter#ny tilbageviser en HTML-formular til oprettelse af et nyt produkt
POST /produkter produkter#oprette oprette et nyt produkt
GET GET /produkter/:id products#show viser et bestemt produkt
GET GET /products/:id/edit products#edit tilbagemelder en HTML-formular til redigering af et produkt
PATCH/PUT /products/:id produkter#opdatere opdatere et bestemt produkt
DELETE /produkter/:id produkter#destroy slette et bestemt produkt

Brug af ressource i Rails-ruter

Lad os tage et eksempel på bruger profile for en bruger, der er logget ind på et websted ved hjælp af Rails-applikation.Brugerprofilen skal være en enhed (ressource), der skal arbejdes på, når brugeren er logget ind.Vi vil ikke have, at slutbrugeren skal kende brugerens profil ID.Således,

  • For at se profil skal ruten være noget som www.example.com/profile
  • For at redigere profil skal ruten være noget som www.example.com/profile/edit

osv.

Vi kan definere ruter for profile ressource som angivet nedenfor.

resource :profile
HTTP-verbum Path Controller#Action Bruges til
GET /profile/new profiles#new returnerer en HTML formular til oprettelse af en ny profil
POST /profil profiles#create oprettelse af en ny profil
GET /profil profiles#show viser en specifik profil
GET /profil/redigere profiler#redigere returnerer en HTML-formular til redigering af en profil
PATCH/PUT /profiler profiler#opdatere opdatere en bestemt profil
DELETE /profil profiler#destroy slette en bestemt profil

Vi kan se, at enkeltstående ressourceveje ikke har ID af ressourcen.Desuden omdirigerer den stadig anmodninger til pluraliseret controllernavn.

Rails vejledninger foreslår:,

Sommetider har du en ressource, som klienter altid slår op uden at henvise til et ID. Du vil f.eks. gerne have /profile til altid at vise profilen for den aktuelt indloggede bruger. I dette tilfælde kan du bruge en enkeltstående ressource.

Forskellen mellem ressource og ressourcer