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.

rootApp

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:

rootApp

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