Rutas dentro de la aplicación - moiseserg/rubyWebDev GitHub Wiki
Rutas dentro de la aplicación Las rutas generadas por el scaffold son generadas de manera dirtecta por el controlador, pero deben ser declaradas de manera directa en el archivo config/routes.rb. Este archivo es modificado de manera automática por el scaffold, cada vez que se crea un modelo, el scaffold actualiza la lista de modelos en este archivo mismas que son generadas de manera dinámica a partir de las convenciones de nombrado.
Rails.application.routes.draw do
resources :recipes
end
En este archivo, también es posible cambiar directamente la página que saldrá al momento de cargar la raíz del proyecto en el servidor web (http://localhost:3000).
Rails.application.routes.draw do
resources :recipes
root "recipes#index"
end
Para ello, se agregó la línea que indica que cuando se cargue la raíz del proyecto se ejecute http://localhost:3000/recipes de manera interna.
Como se pudo observar
http://localhost:3000/recipes
es generado por scaffold de manera automática usando http://localhost:3000/ y el nombre del modelo en plural. Al haber modificado la ruta por default de root, tanto http://localhost:3000 y http://localhost:3000/recipes muestran la misma información.
Si se desean saber las rutas para alguna de las opciones anteriores (listar, crear, editar, mostrar) se puede ingresar una ruta inválida que generará un error:
Como resultado muestra el método de acceso a la ruta (POST, GET, PUT y PATCH) y las rutas con las que pueden ser accesadas para cada opción. Como se indicaba anteriormente /empleados/:id(.:format)
es la ruta genérica para mostrar cualquier empleado. Los métodos GET y POST son generados prácticamente por todos los navegadores modernos, pero los métodos PUT y PATCH es común que carezcan de soporte. La siguiente lista muestra una descripción de cada una de las rutas mostradas en la figura:
Helper | Acción | Ruta | Descripción |
---|---|---|---|
recipes_path |
GET | /recipes(.:format) |
recipes#index Obtener la lista de recetas |
POST | /recipes(.:format) |
recipes#create Creación de una nueva receta |
|
new_recipe_path | GET | /recipes/new(.:format) |
recipes#new Forma para crear una receta |
edit_recipe_path | GET | /recipes/:id/edit(.:format) |
recipes#edit Forma para modificar una receta |
recipe_path | GET | /recipes/:id(.:format) |
recipes#show Forma para mostrar una receta |
PATCH | /recipes/:id(.:format) |
recipes#update Actualización de una receta |
|
PUT | /recipes/:id(.:format) |
recipes#update Actualización de una receta |
|
DELETE | /recipes/:id(.:format) |
recipes#destroy Eliminación de una receta |
|
root_path | GET | / | recipes#index Obtener la lista de recetas |