W Railsach, zasobożerna trasa zapewnia mapowanie pomiędzy czasownikami HTTP i adresami URL a akcjami kontrolera. Zgodnie z konwencją, każda akcja mapuje również do konkretnych operacji CRUD w bazie danych. Pojedynczy wpis w pliku routingu, taki jak
resources :photos
, tworzy siedem różnych tras w twojej aplikacji, wszystkie mapujące do kontroleraPhotos:
GET /photosGET /photos/newPOST /photosGET /photos/:idGET /photos/:id/editPATCH/PUT /photos/:idDELETE /photos/:id
Zasoby mogą być również zagnieżdżane w nieskończoność poprzez użycie tej składni blokowej:
resources :photos do resources :commentsend
Generuje to następujące ścieżki komentarzy:
Opcje
Przyjmuje te same opcje co Base#match, a także:
:path_names
Pozwala na zmianę składowej segmentowej akcji edit i new. Akcje nie określone nie są zmieniane.
resources :posts, path_names: { new: "brand_new" }
Powyższy przykład zmieni teraz /posts/new na /posts/brand_new
:path
Pozwala zmienić prefiks ścieżki dla zasobu.
resources :posts, path: 'postings'
Zasób i wszystkie segmenty będą teraz kierowane do /postings zamiast /posts
:only
Tylko generuj trasy dla podanych akcji.
resources :cows, only: :showresources :cows, only:
:except
Generuje wszystkie trasy z wyjątkiem podanych akcji.
resources :cows, except: :showresources :cows, except:
:shallow
Generuje płytkie trasy dla zagnieżdżonych zasobów.Umieszczone na zasobie nadrzędnym, generuje płytkie trasy dla wszystkich zagnieżdżonych zasobów.
resources :posts, shallow: true do resources :commentsend
Jest taki sam jak:
Pozwala to na skrócenie adresów URL dla zasobów, które w przeciwnym razie byłyby głęboko zagnieżdżone, takich jak komentarz do wpisu na blogu jak/posts/a-long-permalink/comments/1234 do po prostu/comments/1234.
:shallow_path
Przedstawia zagnieżdżone trasy płytkie z podaną ścieżką.
scope shallow_path: "sekret" do resources :posts do resources :comments, shallow: true endend
Zasób commentshere będzie miał wygenerowane następujące trasy:
:shallow_prefix
Prefiksuje nazwy zagnieżdżonych płytkich tras z podanym prefiksem.
scope shallow_prefix: "sekret" do resources :posts do resources :comments, shallow: true endend
Zasób commentshere będzie miał wygenerowane dla niego następujące trasy:
:format
Pozwala określić domyślną wartość dla opcjonalnego segmentu formats lub wyłączyć go przez podanie false.
Przykłady
.