Como pudiste notar en el tema anterior, en la respuesta de una solicitud web, se involucran distintos archivos.
De hecho, son incluso más de los que tú puedes ver y de los que nosotros como desarrolladores programamos. El flujo que sigue una petición web desde que la recibimos hasta que le damos respuesta es la siguiente.
Primero, vamos a definir una serie de conceptos, la parte final de la URL, a la que usualmente llamamos el path, es un indicador del recurso al que quiere acceder el usuario, por ejemplo, si estamos en codigofacilito.com/cursos /cursos es el recurso que estamos buscando.
Decimos entonces que en codigofacilito.com vamos a pedir un recursos con el identificador cursos.
Esta petición se transporta a través de la red usando una serie de convenciones, o protocolo como lo llamamos, de nombre http. En estas convenciones se define cómo debe de hacerse la solicitud y qué información debemos recibir para poder entregar una respuesta.
Rails recibe la solicitud, y cual proceso refinado de burocracia la hace pasar por muchos departamentos a los que llamaremos middlewares, el concepto de middlewares es un poco complejo por lo que no voy a profundizar mucho en él, solo ten en cuenta que la solicitud va pasado de middleware en middleware, y en cada proceso Rails agrega más información, arregla datos, lee otros y al final, nos hace llegar una petición mucho más robusta, con toda la información que necesitamos para darle respuesta.
En este punto, entran las rutas, misma que definimos en el archivo routes.rb, este archivo recibe la solicitud y se da a la tarea de buscar una ruta que corresponda al recurso solicitado, su trabajo principal es encontrar un controlador para dicha petición.
En las rutas nosotros declaramos qué recurso es manejado por cuál controlador, de manera que una vez que encuentra el controlador definido para la ruta correspondiente, la solicitud pasa hacia el controlador.
En el controlador es donde nosotros tenemos que declarar los pasos para responder a cada solicitud, en algunos casos, la respuesta es solo una página, en otros una imagen, en otros un reporte, etc.
El controlador debe de definir, construir y enviar la respuesta, en nuestro ejemplo anterior simplemente toma la vista, un archivo de HTML, y lo envía de vuelta hacia el navegador.
Luego, la respuesta pasa por otra serie de departamentos o middlewares que la maquillan, transforman, adaptan y dejan lista para volver a ser enviada por la red, siguiendo los protocolos establecidos, en este caso el protocolo http.
Esa respuesta se envía al navegador quien se encarga de mostrar dicha vista.
Y así de simple, es por esto que cada vez que queramos agregar un nuevo recurso, una nueva página, un nuevo reporte, una nueva vista, etc. a nuestra aplicación web, debemos de registrar la ruta con su correspondiente controlador, y definir en el controlador la respuesta que enviaremos.
En muchas ocasiones, el controlador usará información de los modelos para construir la respuesta, pero eso lo veremos más adelante.
Continuemos.
-
Módulo 1 | 10 clases
Introducción al framework
expand_more-
play_circle_outline
Clase 1
Presentación del curso de Rails
-
play_circle_outline
Clase 2
Qué es Ruby on Rails
-
play_circle_outline
Clase 3
Conocimientos previos
-
play_circle_outline
Clase 4
Instalación en Mac
-
play_circle_outline
Clase 5
Instalación en Windows
-
play_circle_outline
Clase 6
Crear un proyecto de Ruby on Rails
-
play_circle_outline
Clase 7
Explorar los archivos del proyecto
-
play_circle_outline
Clase 8
Componentes del framework
-
play_circle_outline
Clase 9
Convención sobre configuración
-
play_circle_outline
Clase 10
Ambientes de desarrollo
-
-
Módulo 2 | 9 clases
Primeros pasos con Rails
expand_more-
play_circle_outline
Clase 1
Primera vista y primera ruta. Hola mundo
-
play_circle_outline
Clase 2
Motor de render para las vistas
-
play_arrow
Clase 3
Cómo responde a una petición web Ruby on Rails
-
play_circle_outline
Clase 4
Introducción a las rutas
-
play_circle_outline
Clase 5
La ruta principal
-
play_circle_outline
Clase 6
Métodos en las vistas (Helpers)
-
play_circle_outline
Clase 7
Formularios en Rails
-
play_circle_outline
Clase 8
Leer parámetros en un controlador
-
play_circle_outline
Clase 9
Generadores de código
-
-
Módulo 3 | 10 clases
Manejo de datos
expand_more-
play_circle_outline
Clase 1
Introducción al bloque
-
play_circle_outline
Clase 2
MIgraciones en Rails
-
play_circle_outline
Clase 3
Crear la base de datos y primer migración
-
play_circle_outline
Clase 4
ID y timestamps
-
play_circle_outline
Clase 5
Modelos
-
play_circle_outline
Clase 6
Pruebas unitarias
-
play_circle_outline
Clase 7
Primera prueba unitaria
-
play_circle_outline
Clase 8
Primera validación del modelo
-
play_circle_outline
Clase 9
El ActiveRecord
-
play_circle_outline
Clase 10
Acercamiento a las consultas
-
-
Módulo 4 | 6 clases
REST
expand_more -
Módulo 5 | 9 clases
Construye tu propio CRUD
expand_more-
play_circle_outline
Clase 1
Crear la tabla y el modelo
-
play_circle_outline
Clase 2
Pruebas unitarias y validaciones
-
play_circle_outline
Clase 3
Crear el controlador
-
play_circle_outline
Clase 4
Rutas REST
-
play_circle_outline
Clase 5
Crear registros
-
play_circle_outline
Clase 6
Consultar y mostrar registros
-
play_circle_outline
Clase 7
Editar registros
-
play_circle_outline
Clase 8
Eliminar registros
-
play_circle_outline
Clase 9
Recapitulación del bloque
-
-
Módulo 6 | 10 clases
Controladores y rutas
expand_more-
play_circle_outline
Clase 1
Detalles de un controlador
-
play_circle_outline
Clase 2
Respuestas de un controlador
-
play_circle_outline
Clase 3
Parámetros
-
play_circle_outline
Clase 4
Strong Params: Filtrado de parámetros
-
play_circle_outline
Clase 5
Filtros en el controlador
-
play_circle_outline
Clase 6
Cookies y sesiones
-
play_circle_outline
Clase 7
Mensajes flash
-
play_circle_outline
Clase 8
Concerns
-
play_circle_outline
Clase 9
Métodos asociados a rutas
-
play_circle_outline
Clase 10
Configurar las rutas recurso
-
-
Módulo 7 | 18 clases
Modelos
expand_more-
play_circle_outline
Clase 1
Introducción al bloque
-
play_circle_outline
Clase 2
Filtrado con where
-
play_circle_outline
Clase 3
Operador lógico OR para consultas
-
play_circle_outline
Clase 4
Negación de consultas con NOT
-
play_circle_outline
Clase 5
Limpieza de parámetros (sanitizar)
-
play_circle_outline
Clase 6
Otras operaciones comúnes
-
play_circle_outline
Clase 7
Ejercicio: Implementar paginación
-
play_circle_outline
Clase 8
Scopes y métodos de clase
-
play_circle_outline
Clase 9
Configurando validaciones
-
play_circle_outline
Clase 10
Callbacks
-
play_circle_outline
Clase 11
Callbacks con su descripción en español
-
play_circle_outline
Clase 12
Relaciones entre tablas
-
play_circle_outline
Clase 13
Relaciones en el esquema
-
play_circle_outline
Clase 14
Definir asociaciones
-
play_circle_outline
Clase 15
Foreign Key Constraints
-
play_circle_outline
Clase 16
Relaciones muchos a muchos
-
play_circle_outline
Clase 17
Definir asociaciones muchos a muchos
-
play_circle_outline
Clase 18
Dónde aprender más
-
-
Módulo 8 | 13 clases
Vistas y Formularios
expand_more-
play_circle_outline
Clase 1
Panorama general de las vistas
-
play_circle_outline
Clase 2
Layouts
-
play_circle_outline
Clase 3
yields con nombre
-
play_circle_outline
Clase 4
Trabajando con formularios
-
play_circle_outline
Clase 5
Cómo funcionan los métodos de FormBuilder
-
play_circle_outline
Clase 6
Select
-
play_circle_outline
Clase 7
Checkboxes
-
play_circle_outline
Clase 8
Checkboxes y relaciones
-
play_circle_outline
Clase 9
Radio buttons
-
play_circle_outline
Clase 10
Parciales
-
play_circle_outline
Clase 11
Render de colecciones
-
play_circle_outline
Clase 12
Bloques y layouts para parciales
-
play_circle_outline
Clase 13
Helper methods
-
-
check_circle_outlineMódulo 9
Examen del curso
expand_more-
done_all
Examen
Examen final del curso
-