Modelo Vista Controlador y Scaffold

Clase 8 de 29Curso de Ruby on Rails: POO 2018

Modelo Vista Controlador

Modelo, Vista y Controlador. Con esto estuvimos trabajando durante la mayor parte de curso. Aprendiste cuál es la diferencia entre una Vista Estática y una Vista Dinámica, siendo esta última en donde puedes pintar datos de la base de datos gracias a las variables que existan en nuestro Controlador.

También vimos cómo poder relacionar Modelos desde nuestro proyecto en Rails desde los archivos de Modelo.

Aprendimos los diferentes comandos para crear estos recursos.

Controlador:

rails g controller pages index contact

Recuerda que para crear un controlador se hará con minúsculas y en plural, seguido de los métodos que quieras que contenga, que terminan siendo las vistas que se van a crear para este recurso.

Modelo:

rails g model Article title:string body:text user:references

El modelo siempre se declarará en singular y con la primera letra en mayúscula. Seguido de esta declaración puedes especificar los datos que recibirá tu modelo.

TIP: Si tu dato es del tipo string, no es necesario que especifiques el tipo de dato. Pro TIP: Usando “user:references” le estás indicando a Rails que este recurso pertenece, en este caso, a User, así que agrega “belongs_to :user” al archivo “article.rb” en la carpeta de Modelos. Si en vez de “user:references” utilizas “user_id:integer”, tu esquema quedará idéntico, salvo por la ausencia de un index y que no te agregará “belongs_to :user” en el archivo “article.rb”.

Migración:

rails g migration AddNameToUser name:string

Los commandos de migración sirven para agregar columnas a una table en específico. Se declaran de una manera muy humanizada (en inglés) que Rails interpreta para generar el archivo que especifica la tarea que se realizará:

class AddNameToUser < ActiveRecord::Migration[5.2] def change add_column :users, :name, :string end end

Scaffold:

rails g scaffold tasks task:string

El scaffold es un comando poderoso que nos ayuda a crear Modelo, Vistas y Controlador de una con todos los métodos REST definidos sin ningún esfuerzo extra.

Durante el curso vimos el poder del scaffold, pero terminamos ejecutando la creación de Modelo y Controlador para Articles por separado. Esto fue para no ser dependientes del scaffold y poder entender de una manera más clara cómo crear recursos REST de manera “manual”.

NOTA: Recuerda que siempre que crees un Modelo, una migración o un Scaffold, deberás actualizar tu esquema corriendo el comando:

rake db:migrate

Sembrar desde el archivo seeds.rb

Vimos un pequeño ejemplo de cómo sembrar datos dentro de nuestra base de datos. Utilizamos un bloque de Ruby que itera sobre un arreglo que definimos como:

# ruby encoding: utf-8 article_list = [ [ "¿Cómo hacer videojuegos?", "Seguramente ya has escuchado que la industria de los videojuegos tuvo el doble de ganancias que Hollywood en 2017. La industria de los videojuegos viene pisándole los talones a la gran pantalla desde desde el 2013, y podrías creer entonces que crear tu propia empresa de videojuegos es el futuro, pero la realidad es que hacer un videojuego no es fácil.", 1 ], [ "Cuatro formas de implementar tecnología en tu empresa", "La tecnología es una gran aliada de la comunicación en el proceso de Transformación Digital. Tanto para la comunicación interna como externa, puedes elegir una herramienta que responda a las necesidades que tiene tu equipo y centralizar la información y comunicación en ella.", 1 ], [ "Cómo automatizar y optimizar tu trabajo en NodeJS y Grunt", "No basta con seguir los pasos de esta guía: te invito a probar, evaluar y jugar con las posibilidades. Tu mejor escuela es la práctica. Con el tiempo verás que tienes en tus manos una gran herramienta.", 1 ], [ "Tres tips infalibles para aprender inglés online", "Durante muchos años he escuchado que aprender un idioma es una de las metas para iniciar un nuevo año, y el idioma más destacado de todos es el inglés. Pero, ¿cómo aprenderlo de la forma más efectiva y sobre todo que sea flexible? A lo largo de estos años he encontrado que un gran porcentaje de las personas que lo aprendieron, buscaron un método online
      Modelo Vista Controlador y Scaffold