Introducción

1

Curso Completo de Ruby on Rails: Introducción y Proyecto Práctico

2

Historia y Evolución de Ruby y Ruby on Rails

Entorno de desarollo

3

Módulos Esenciales de Ruby on Rails

4

Instalación de Ruby on Rails en Ubuntu 20.04 LTS

5

Instalación de Ruby on Rails en macOS y Windows 10

Nuestra primera aplicación

6

Arquitectura MVC y Flujo de Peticiones en Rails

7

Creación y Configuración de Aplicaciones Web con Ruby on Rails

8

Creación de Rutas y Controladores en Ruby on Rails

9

Creación de Modelos y Migraciones en Ruby on Rails

10

Gestión de Credenciales Seguras en Ruby on Rails

11

Gestión de Assets y Layouts en Rails: Asset Pipeline y Webpacker

12

Uso del Generador Scaffold en Ruby on Rails

13

Migraciones y Consistencia de Modelos en Rails

14

Migración de Plantillas ERB a Haml en Ruby on Rails

15

Creación de Formularios Dinámicos con SimpleForm y Haml en Rails

16

Internacionalización de Aplicaciones Rails con i18n y i18n-tasks

17

Debugging en Ruby on Rails: Uso de Bybug y Pry

Proyecto del curso: primeros pasos

18

Desarrollo de un Sistema de Gestión de Tareas con Ruby on Rails

19

Diseño de Modelos de Datos para un Organizador de Tareas

20

Creación de Scaffolds y Modelos en Rails con SimpleFrame y Bootstrap

21

Internacionalización de Formularios en Rails con i18n y SimpleForm

22

Validaciones de Modelos en Ruby on Rails

Proyecto del curso: usuarios

23

Autenticación de Usuarios con Devise en Rails

24

Migración de Llave Foránea: Enlazar Tarea con Usuario en Rails

25

Integración Visual y Estructural en Rails: Usuario, Tarea y Participante

26

Manejo de Formularios Anidados con Cocoon en Rails

27

Formularios Dinámicos en Rails con Cocoon y Validaciones de Unicidad

28

Permisos y Accesos con KanKan en Aplicaciones Rails

Proyecto del curso: interacciones

29

Callbacks en Controladores y Modelos en Rails

30

Automatización de Inserción de Datos en Rails con db:seed

31

Envío de Correos con ActionMailer en Rails

32

Creación de notas dinámicas en tareas con Ruby on Rails

33

Inserciones Dinámicas de Notas con AJAX y SJR en Rails

34

Mejora de Interfaces con Bootstrap en Aplicaciones Rails

Cierre

35

Despliegue de Aplicaciones en Heroku con Ruby on Rails

36

Desarrollo de Aplicaciones Web con Ruby on Rails

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Arquitectura MVC y Flujo de Peticiones en Rails

6/36
Recursos

¿Cómo funcionan las arquitecturas cliente-servidor en sistemas web?

Para entender el funcionamiento de Rails, es vital comprender el mapeo de los sistemas web tradicionales y cómo aún se emplean ciertas arquitecturas en aplicaciones web modernas. Todo parte del patrón solicitante-proveedor. Imagina que alguien solicita un servicio y existe un sistema que provee dicho servicio. Este concepto arraiga el modelo cliente-servidor, muy popular en desarrollos web contemporáneos, y Rails no es la excepción.

¿Cómo se compara una arquitectura web con un mundo real?

Para visualizarlo mejor, imagina que envías un mensajero desde tu casa a un complejo residencial para recoger un paquete. Tú, como solicitante, le das instrucciones precisas. El mensajero actúa como ente transmisor de tus requerimientos, similar a cómo funciona una petición HTTP en la web.

  1. Cliente: Tú en tu casa solicitando el servicio.
  2. Mensajero: Envia y transmite tus necesidades, portando tu mensaje.
  3. Enrutador: Como la recepción del complejo, redirige al mensajero según tus indicaciones.
  4. Controlador: La persona que prepara y entrega el paquete, parecido a cómo un controlador en Rails procesa datos.
  5. Modelo: Conecta datos con la base de datos, asegurando que el contenido sea exacto.
  6. Vista: El producto final entregado, que puede ser un paquete físico en la analogía, o una página web renderizada.

¿Qué papel juega HTTP en este esquema?

El protocolo HTTP nutre esta estructura, ayudando a mapear peticiones y definir formatos de respuestas. Mediante una URL, se puede especificar cómo debe ser entregado el paquete. Existen diversos formatos:

  • HTML: Para contenido web.
  • JavaScript, PDF, XML: Otras posibles estructuras de archivo.

Estas opciones permiten flexibilidad en la comunicación cliente-servidor adaptando el producto final a las necesidades específicas del usuario.

¿Qué es el modelo vista controlador en Rails?

Rails integra el estilo arquitectónico conocido como modelo vista controlador (MVC), que organiza el proceso de las peticiones en módulos:

  • C - Controlador: Se encarga del enrutamiento y procesamiento inicial de la petición.
  • M - Modelo: Conecta a la base de datos, gestionando las interacciones con los datos almacenados.
  • V - Vista: Procesa la renderización de la respuesta final mediante sistemas de plantillas, entregando un producto final como una web página.

Adicionalmente, Rails sigue la estructura RESTful. Ofrece métodos predefinidos para gestionar recursos, como index, show, new, create, edit, update y destroy, proveyendo una verdadera dinamización en la interacción con los datos.

¿Cómo se aplica Rails al modelo vista controlador?

Rails sigue convencionalmente la estructura RESTful para manejar las peticiones. Los métodos RESTful permiten abordar y manipular recursos de manera eficiente. Estos métodos pueden ser modificados o ampliados según las necesidades del desarrollador, añadiendo flexibilidad a la estructura MVC que Rails promueve.

Este enfoque no solo fortalece las aplicaciones modernas, sino que inspira a los desarrolladores a explorar y personalizar sus aplicaciones, utilizando un marco de trabajo robusto y bien estructurado. ¿Estás listo para seguir aprendiendo? ¡El mundo del desarrollo web con Rails es vasto y emocionante!

Aportes 10

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Sería ideal que en estos cursos ya se promueva el uso de docker para usar dockerización de la app en entorno local, eso facilitaría muchísimo al pasar a producción en infraestructuras modernas 😃

Entender la web con rieles


Todo parte del esquema solicitante-proveedor. O sea, cliente-servidor. Rails no es la excepción a esto y podemos encontrar este tipo de flujos utilizando arquitecturas modernas.

<h3>1er paso - Cliente</h3>
  • Protocolo HTTP
  • Petición URL
  • Método GET
  • Formato HTML

<h3>2do paso - Enrutador/Mapeador</h3>
  • Petición URL
  • Método GET

<h3>3er paso - Controlador</h3>
  • Formato HTML
  • Parámetros :id

<h3>4er paso - Modelo</h3>
  • Parámetros :id

<h3>5er paso - Templating, Formatos y Renderizador</h3>
  • Formato HTML
    Cuando ya tenemos los datos que hemos pedido adoptamos el formato que viene desde nuestra petición y lo renderiza con un sistema de plantillas

<h3>6to paso - Formato</h3>
  • Formato HTML
    Página lista.

Esto denota un estilo arquitectónico o MVC (Modelo-vista-controlador)

⭐ Rails trata por convención a las peticiones con la estructura RESTful, este nos provee cierto tipo de métodos prediseñados y preconfigurados para poder acceder a los recursos.

Excelente explicación 👏🏼

Web tradicional

La gran mayoría de sitios y aplicaciones en internet trabajan con un arquitectura Cliente - Servidor. Incluso en desarrollos con tecnologías modernas.

Web con Rails

El cliente hace una petición, el enrutador hace el papel de una especie de lobby, donde dirigirá la petición a donde está lo que pidió, pero antes se topa con el controlador; el controlador construye la respuesta y la envía (con ayuda del modelo y del renderizador) de regreso.

  1. Para realizar esa petición se usa el protocolo HTTP, con una petición URL usando el método GET en formato HTML.
  2. La petición URL llega al sistema, y el enrutador hace un mapeo y a través del mapeo se enruta hacia su correspondiente controlador.
  3. El controlador reconoce los parámetros que vienen dentro de la URL y con está información se comunica con el Modelo para obtener la información que se pidió.
  4. Cuando ya se tiene la información adopta el formato que fue solicitado y lo renderiza con un sistema de plantillas y finalmente devuelve el resultado al cliente.

Este es un estilo arquitectónico conocido como MVC (Model View Controller)

Por convención, Rails trata a las peticiones bajo el estilo arquitectónico RESTful, que provee ciertos métodos prediseñados y preconfigurados para acceder a los recursos. Estos son: index, show, new, create, update y destroy.

Estos métodos se pueden modificar o incluso se pueden crear métodos propios, pero estos son los que la arquitectura RESTful provee por defecto.

Muy importante:

  • Index
  • Show
  • New
  • Edit
  • Create
  • Update
  • Destroy

Este video también me ayudó a entender bien el modelo MVC

https://www.youtube.com/watch?v=Izkaq1rjukg

La mejor explicación que he visto de la arquitectura MVC, nunca me había quedado claro del todo hasta hoy.

es un modelo vista controlador (MVC)

Ruby on Rails: HTTP, MVC and Routes

Les dejo mis aportes de este y otros videos que vi en internet:

1° paso) Envió mensajero, el mensaje tiene unas condiciones determinadas, instrucciones ya mapeadas:

  • Protocolo HTPP: son instrucciones que le doy al mensajero
  • Petición URL: como quiero que se entregue la información
  • Método Get
  • Formato HTML: tipo de paquete que quiero que me lo envíen, por ejemplo HTML, XML

2° paso) El mensajero al llegar al lobby o a portería llega a un enrutador o mapeador
Enrutamiento: el mensajero entrega las instrucciones de a donde ir al portero y este le da el okey

3° paso) El mensajero llega a la casa, es decir al controlador quien recibe las condiciones, lo construye, lo empaqueta y se lo entrega al mensajero. Las condiciones son la forma en la que quiero renderizar el producto.

4° paso) Recibo el paquete de parte del mensajero

La petición URL y el método get es el mapeo que hace el sistema (cuando la petición llega, se enruta y va al controlador: quien tiene una acción y parámetros dentro de la url: las condiciones).

El controlador hace un enlace directo hacia un sistema donde tengo almacenado registros, este sistema se llama modelo, tiene comunicación directa con una base de datos.

Desde el id que he obtenido desde el controlador obtengo referencia directa al recurso que quiero, es decir al insumo para poder fabricar el producto.

Cuando tengo el insumo adopto el formato que viene desde mi petición o desde las condiciones y a partir de allí entrego, en este caso utilizo HTML: sistema para renderizar HTML.
El producto final, en este caso es una pagina terminada, empaquetada que ira de vuelta a la respuesta de mi petición.

MODELO-VISTA-CONTROLADOR:

  • Control: recepción de petición y tratamiento, lo forman el enrutador y el controlador.
  • Modelo: modelo y base de datos
  • Vista: sistema de renderización y plantilla, lo que ve el usuario , recibe datos del modelo y se lo muestra al usuario.

Controlador: nexo entre modelo y vista, ya que por ejemplo el usuario envía un formulario, el controlador zabra que tiene que crear un modelo y almacenar información dentro de la BD. Al llevar la acción de manera satisfactoria tiene que ir a una vista y hacer que esta vista le notifique al usuario que el registro se llevo de manera adecuada.