¿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)
Filosofía
• Don’t Repeat Yourself (DRY)

• Convention Over Configuration
Datos curiosos
• Es un Framework de código abierto

• Lanzado en el 2005 (Tiene más de 15 años)

• Basado en Ruby ❤
Ventajas & Desventajas
• Prototipado Rápido 

• Simplicidad en código

• Entorno amigable

• Se necesita aprender Ruby

• Castigado en popularidad

• Basado en lenguaje interpretado
¿Quién usa Ruby on Rails?
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.
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
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
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
Flujo del MVC
Flujo del MVC en Rails
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
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
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
Assets & Layout
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.
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
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.
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
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
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
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.
Custom Layouts
class PagesController < ApplicationController

layout ‘my_nuevo_layout’

end

class PagesController < ApplicationController

layout ‘my_nuevo_layout’, only: [:index]

end
Webpacker
+
Webpacker

Ruby on Rails

  • 1.
    ¿Qué es Rubyon Rails? A web-application framework than includes everything needed to create database-backend web application according to the Model-View-Controller (MVC)
  • 2.
    Filosofía • Don’t RepeatYourself (DRY) • Convention Over Configuration
  • 3.
    Datos curiosos • Esun Framework de código abierto • Lanzado en el 2005 (Tiene más de 15 años) • Basado en Ruby ❤
  • 4.
    Ventajas & Desventajas •Prototipado Rápido • Simplicidad en código • Entorno amigable • Se necesita aprender Ruby • Castigado en popularidad • Basado en lenguaje interpretado
  • 5.
  • 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ónde 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 intermediarioentre 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
  • 10.
  • 11.
    Flujo del MVCen Rails
  • 12.
    Active Record El mapeorelacional 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 modelodentro 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 Deforma 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
  • 15.
  • 16.
    The Asset Pipeline Nosprovee 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 Esimplementado 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 Railsautomá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 primerfeature 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 ultimacaracterí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 Pordefecto 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
  • 24.
  • 25.