En Rails, una ruta resourceful proporciona un mapeo entre verbos HTTP y URLs y acciones del controlador. Por convención, cada acción también mapea a operaciones CRUD particulares en una base de datos. Una sola entrada en el archivo de enrutamiento, como
resources :photos
crea siete rutas diferentes en la aplicación, todas ellas asignadas al controladorPhotos:
GET /photosGET /photos/newPOST /photosGET /photos/:idGET /photos/:id/editPATCH/PUT /photos/:idDELETE /photos/:id
Los recursos también pueden anidarse indefinidamente utilizando esta sintaxis de bloque:
resources :photos do resources :commentsend
Esto genera las siguientes rutas de comentarios:
Opciones
Toma las mismas opciones que Base#match así como:
:path_names
Permite cambiar el componente de segmento de las acciones edit y new. Las acciones no especificadas no se cambian.
resources :posts, path_names: { new: "brand_new" }
El ejemplo anterior ahora cambiará /posts/new a /posts/brand_new
:path
Le permite cambiar el prefijo de la ruta para el recurso.
resources :posts, path: 'postings'
El recursoy todos los segmentos ahora se dirigirán a /postings en lugar de /posts
:only
Sólo genera rutas para las acciones dadas.
resources :cows, only: :showresources :cows, only:
:except
Genera todas las rutas excepto para las acciones dadas.
resources :cows, except: :showresources :cows, except:
:shallow
Genera rutas superficiales para los recursos anidados.Cuando se coloca en un recurso padre, genera rutas superficiales para todos los recursos anidados.
resources :posts, shallow: true do resources :commentsend
Es lo mismo que:
Esto permite que las URLs de los recursos que de otro modo estarían profundamente anidados, como un comentario en una entrada de blog como/posts/a-permalink/comments/1234, se acorten a sólo/comments/1234.
:shallow_path
Prefija las rutas superficiales anidadas con la ruta especificada.
scope shallow_path: "sekret" do resources :posts do resources :comments, shallow: true endend
El recurso commentshere tendrá las siguientes rutas generadas para él:
:shallow_prefix
Prefija nombres de rutas superficiales anidadas con el prefijo especificado.
scope shallow_prefix: "sekret" do resources :posts do resources :comments, shallow: true endend
El recurso commentshere tendrá las siguientes rutas generadas para él:
:format
Le permite especificar el valor por defecto para el segmento de formato opcional o desactivarlo suministrando false.