1. ¿Qué es Ruby on Rails?
A web-application framework than includes everything needed to create
database-backend web application according to the
Model-View-Controller (MVC)
6. MVC
• M - Model
• V - View
• C - Controller
Es un patrón para desarrollar software que separa los datos de una
aplicación en 3 simples capas.
7. Model
Contiene una representación de los datos que maneja nuestro sistema.
Tareas principales:
• Acceder a la capa de almacenamiento de datos.
• Define las reglas del negocio
8. View
La vista ó interfaz de usuario, este compone la información que será
mostrada al cliente y los mecanismos de interacción con éste.
Tareas principales:
• Recibir datos del modelo y mostrarlos al usuario.
• Realizar nuevas solicitudes
9. Controller
Actúa como intermediario entre el Modelo y la Vista. Gestionando el
flujo de información entre ellos.
Tareas principales:
• Traducir eventos de entrada.
• Contiene la gestión de cada característica dentro de la aplicación
12. Active Record
El mapeo relacional de objetos ó comúnmente conocido con su
abreviatura ORM, es una técnica que conecta objetos con tablas
dentro de una base de datos.
Gracias a esto podemos recuperar fácilmente propiedades y relaciones
sin necesidad de definir SQL
13. Modelo
• El modelo dentro del MCV es el responsable de representar la lógica y
los datos. Y la tarea de ActiveRecord es facilitar el uso de objetos que
necesitamos almacenar dentro de nuestra base de datos
14. Convención de Nombres
De forma predeterminada ActiveRecord utiliza algunas convenciones
para saber cómo debe crear las asignación entre modelos y tablas dentro
de nuestra base de datos.
Rails pluraliza los nombres de las clases para encontrar la tabla dentro
de la base de datos.
Modelo: User
Tabla: users
Modelo: BookClub
Tabla: book_clubs
16. The Asset Pipeline
Nos provee un conjunto de herramientas para comprimir ó minificar assets
CSS y JavaScript. También agrega la habilidad de poder escribir estos
Assets en otros lenguajes y pre-procesadores tales como CoffeScript, Sass
Y ERB.
17. The Asset Pipeline
Es implementado por la gema sprockets-rails y esta activada por defecto.
Pero podríamos desactivarla pasando el flag - - skip-sprokets como opción.
rails new app —skip-sprokets
18. The Asset Pipeline
Rails automáticamente o por defecto agrega la gema sass-rails en nuestro
Gemfile para que esta sea utilizada por Sprockets para la compresión de
assets.
19. Main Features
El primer feature del pipeline es concatenar assets, y así poder reducir el
número de peticiones que se hacen al intentar renderizar la página web.
master.css
footer.css
profile.css
navbar.css
master.js
modal.js request.js
20. Main Features
Minificación ó compresion. Para los archivos css es suficiente con remover
espacios en blanco y comentarios. Para JavaScript pueden aparecer procesos
un tanto más complejos.
master.css master.js
21. Main Features
La ultima característica es permitirnos escribir código utilizando lenguajes de
nivel superior. Dentro de los lenguajes permitidos encontramos a Sass para
CSS y CoffeScript para JavaScript
22. Layouts con ERB
Por defecto todas las vistas utilizan el layout
ubicado en:
app/views/layouts/application.html.erb
Y todas las modificaciones que hagamos en
este template se aplicaran a todas las vistas.
23. Custom Layouts
class PagesController < ApplicationController
layout ‘my_nuevo_layout’
end
class PagesController < ApplicationController
layout ‘my_nuevo_layout’, only: [:index]
end