In Rails bietet eine resourceful route ein Mapping zwischen HTTP Verben und URLs und Controller Aktionen. Per Konvention bildet jede Aktion auch auf bestimmte CRUD-Operationen in einer Datenbank ab. Ein einzelner Eintrag in der Routing-Datei, wie z.B.
resources :photos
erzeugt sieben verschiedene Routen in Ihrer Anwendung, die alle auf denPhotos-Controller abbilden:
GET /photosGET /photos/newPOST /photosGET /photos/:idGET /photos/:id/editPATCH/PUT /photos/:idDELETE /photos/:id
Ressourcen können auch mit dieser Blocksyntax unbegrenzt verschachtelt werden:
resources :photos do resources :commentsend
Dies erzeugt die folgenden Kommentarrouten:
Optionen
Die gleichen Optionen wie Base#match sowie:
:path_names
Ermöglicht die Änderung der Segmentkomponente der Edit- und New-Aktionen. Nicht angegebene Aktionen werden nicht geändert.
resources :posts, path_names: { new: "brand_new" }
Das obige Beispiel wird nun /posts/new in /posts/brand_new ändern
:path
Erlaubt das Ändern des Pfadpräfixes für die Ressource.
resources :posts, path: 'postings'
Die Ressource und alle Segmente werden nun zu /postings anstatt zu /posts geleitet
:only
Erzeugt nur Routen für die angegebenen Aktionen.
resources :cows, only: :showresources :cows, only:
:except
Erzeugt alle Routen, außer für die angegebenen Aktionen.
resources :cows, except: :showresources :cows, except:
:shallow
Erzeugt flache Routen für verschachtelte Ressourcen, wenn sie auf einer übergeordneten Ressource platziert werden.
resources :posts, shallow: true do resources :commentsend
Ist dasselbe wie:
Dies ermöglicht URLs für Ressourcen, die sonst tief verschachtelt wären, wie z.B. ein Kommentar zu einem Blog-Post wie/posts/a-long-permalink/comments/1234, um auf nur/comments/1234 verkürzt zu werden.
:shallow_path
Präfixiert verschachtelte shallowroutes mit dem angegebenen Pfad.
scope shallow_path: "sekret" do resources :posts do resources :comments, shallow: true endend
Für die comments-Ressource werden die folgenden Routen generiert:
:shallow_prefix
Präfixiert verschachtelte shallowroute-Namen mit dem angegebenen Präfix.
scope shallow_prefix: "sekret" do resources :posts do resources :comments, shallow: true endend
Für die Ressource commentshere werden die folgenden Routen generiert:
:format
Ermöglicht es, den Standardwert für das optionale Formatsegment anzugeben oder es durch Angabe von false zu deaktivieren.