Téoria del MVC

MVC

Es un patrón de la arquitectura de software, que separa los datos y la lógica de negocio de una aplicación.

  • Modelo: manejo de la base de datos y la lógica de negocios
  • Controlador: manejo de la interfaz del usuario y aplicación
  • Vistas: manejo de objeto de interfaz gráfica de usuario y presentación

Separación de acuerdo al resultado de la peticiones del usuario

1.- El buscador del cliente que manda una petición al controlador en el servidor
2.- El controlador recupera los datos los necesita de un modelo en orden para responder la solicitud
3.- El controlador le da los datos recuperados a las vistas
4.- Las vistas redirige y devuelve la información al cliente.

La separación en estos 3 distintos componentes es una buena idea por un número de razones, incluyendo:

  • Mejora la escalabilidad
    Por ejemplo si tu aplicacion comienza a experimentar problemas de rendimiento por que el acceso es lento, puedes actualizar el hardware que corre la base de datos sin afectar otros componentes.

  • Fácil mantenimiento
    Como el componente tiene un bajo dependecia uno del otro, hacer cambios de uno no afecta al otro.

  • Reutilización
    Un modelo puede ser usado por múltiples vistas

MVC rails

Rails promueve el concepto de los modelos, vistas y controladores que deben estar separados por el historial de código por cada elemento como archivos independientes en directorios.

Como se puede ver, cada componente del la arquitectura modelo-vista-controlador ha sido puesto dentro en la carpeta app(carpeta de la aplicación) el modelo, vista y controlador con sus respectivas carpetas.
Módulo de ActiveRecord

Es el encargado del manejo de la comunicacción lógica y de la base de datos.

  • Establece una conexión con el servidor de la base de datos
  • Recupera datos de la tabla
  • Historial de datos en la base de datos

Abstracción de base de datos
Se puede adaptar la base de datos para que se comunique con los diferentes tipos de manejadores como SQLite, MySQL, y posgresql.
Hay un largo numero de adaptadores que están disponibles para la base de datos como Oracle, MongoDB y Microsoft SQL server.

Tablas de la base de datos

Las tablas son contenedor de nuestra información que se guardan en las base de datos de manera estructurada, están compuestas por filas y columnas. Las lineas mapean los objetos individuales y las columnas mapean atributos de esos objetos. La colección de todas la tablas se guardan en una base de datos, y la relación entre esas tablas es llamada squema de base de datos.

Usando la consola de rails

Nos mostrara este código >> símbolo de sistema que esta listo de aceptar comandos.

Guardar un objeto
Podemos guardar un objeto siempre cuando tengamos la instancia del objeto en una variable para poderle dar .save
ejemplo
@objeto = nombredelobjeto.new
@objeto.save <–––– de esta manera podemos guardar su informacion y pueda esatar disponible para su manipulación

story = story.new
story.save

Definir relación entre objetos

relación uno a uno
relación uno a muchos
relación muchos a muchos

En rails es:
hasone
has
many
belongsto
has
andbelongsto_many

ActionPack Library

El nombre de esta librería que contiene la vista y el controlador es parte de la arquitectura de MVC. A diferencia del ActiveRecord modular, estos modulos son mas intuitivos nombre: ActionController
y ActionView.

ActionController(El controlador)
El controlador maneja la aplicación lógica del programa, actúan como union entre la aplicación de datos, la capa de presentación, y navegador web. En este rol, un controlador realiza un número de tareas incluyendo:

  • Decide como manejar una petición en particular
  • Recupera información del modelo que se lo pasa a la vista
  • Reúne información de la petición del explorador y usa para crear, actualizar datos en el modelo o igual llamado CRUD.

ActionView(La vista)

Unos de los principales de MVC es esta vista debe contener solo la presentación lógica.
Se encuentra en app/views

Una vista actualmente no necesita contener culaquier codigo de ruby en asboluto. Un html puede tener un bombinacion de html y ruby, haciendo que lapagina sea mas dinamica. El codigo de ruby es embendado en html y usando embendado de ruby (Erb) sintaxis.

Estos son la forma de meter codigo ruby en el hmtl
<%= … %>
Ejecución de funciones
<% … %>
Impresión