Neulich habe ich die Unterschiede zwischen Ressourcen und Ressourcen zusammengefasst, aber es gab einige Punkte zu beachten, wenn ich sie in Kombination verwende, also habe ich sie zusammengefasst. Klicken Sie hier für den Unterschied → Unterschied zwischen Ressourcen und Ressourcen - Qiita
Durch die kombinierte Verwendung von Ressourcen können Sie auf einfache Weise das folgende Routing generieren.
--Listenanzeige aller Benutzer
Jeder kann die Liste aller Benutzer und die Details jedes Benutzers anzeigen, aber nur seine eigenen Benutzerinformationen können bearbeitet werden.
config/routes.rb
resources :users, only: [:index, :show]
resource :user, only: [:show, :edit, :update]
Wenn man sich die Routen ansieht, die durch "Schienenrouten" erzeugt werden, sieht es wie folgt aus.
Terminal
Prefix Verb URI Pattern Controller#Action
users GET /users(.:format) users#index
user GET /users/:id(.:format) users#show
edit_user GET /user/edit(.:format) users#edit
GET /user(.:format) users#show
PATCH /user(.:format) users#update
PUT /user(.:format) users#update
user GET / users /: id (.: Format) Der Teil von users # show
, user_path wird / users /: id zugewiesen, sodass die Hilfsmethode, die / user zurückgeben soll, nicht generiert wird.
Also habe ich versucht, es in umgekehrter Reihenfolge zu beschreiben.
config/routes.rb
resource :user, only: [:show, :edit, :update]
resources :users, only: [:index, :show]
Wenn man sich die Routen ansieht, die durch "Schienenrouten" erzeugt werden, sieht es wie folgt aus.
Terminal
Prefix Verb URI Pattern Controller#Action
edit_user GET /user/edit(.:format) users#edit
user GET /user(.:format) users#show
PATCH /user(.:format) users#update
PUT /user(.:format) users#update
users GET /users(.:format) users#index
GET /users/:id(.:format) users#show
Wenn der lokale Benutzer durch die Anmeldefunktion (Sitzungsverwaltung) identifiziert werden kann, muss Folgendes nicht angegeben werden: id, sodass das Routing für den lokalen Benutzer "resource" verwendet.
Um den Detailbildschirm anderer Benutzer als Sie selbst anzuzeigen, muss die ID des Zielbenutzers angegeben werden, sodass "Ressourcen" eine Route generiert, die Folgendes enthält: ID in der Anforderung.
Wenn Sie ein Routing erstellen, indem Sie "Ressource" in der Singularform und "Ressourcen" in der Pluralform kombinieren, schreiben Sie die Singularform "Ressource" oben.
Recommended Posts