Ciclo de un request en Ruby on Rails

Por Andrés Howard | June 24

Las aplicaciones diseñadas con Rails sigue el patrón a arquitectura MVC, donde M corresponde a Model, V a View y C a Controller. Cada una de estas capas tiene su responsabilidad.

En el siguiente diagrama vemos una representación de las partes principales del ciclo:

Fuente: https://medium.com/@matthewmain/rails-request-response-cycle-819e9cd8fa4e

Componentes

En este ciclo interactúan varios componentes, entre ellos:

  1. Router: Cuando apretamos un botón en nuestro Browser, se genera un request que llega al servidor de Buk. Una vez adentro de la aplicación, el request lo toma el Router para definir hacia qué parte de la aplicación se dirige, es decir, para definir quién es el responsable de encargarse de dicho request.
  2. Controller: Cuando el request es derivado a un controlador, éste la recibe y ejecuta la función que corresponde. El rol del controlador es interpretar el request y producir el output correspondiente.
  3. Model: Los datos utilizados por la aplicación se representan usando instancias de esta clase. Maneja la representación de los datos de la base de datos, por lo tanto es la encargada de comunicarse con la misma.
  4. View: Se encarga de la vista: lo que ve el usuario y se muestra en el Browser.

Ciclo

Entendiendo qué hacen los principales componentes, ahora podemos ver cuál es el ciclo:

  1. El browser gatilla un request
  2. El router dirige el request hacia una acción de un controlador específico.
  3. El controlador ejecuta la acción e interpreta el request y prepara su respuesta.
  4. El modelo prepara los datos necesarios a solicitud del controlador, y se los pasa al controlador.
  5. La vista prepara lo que verá el usuario en base a los datos recibidos del controlador, y le responde al controlador con la vista.
  6. El controlador responde al browser con la vista preparada en base a todo el ciclo.
  7. El browser recibe la respuesta (response) y se la muestra al usuario.