Hola, que tal amigos de Devcodela,! Les habla Elicia Cordova. Y en este video aprenderemos a generar código de manera fácil y rápida utilizando scaffold en Ruby on Rails.
Scaffold significa andamio en inglés. Ésta es una de las características que más enganchan en Rails ya que permite tener las funcionalidades básicas de administración de datos de un modelo en un controlador. Estas funcionalidades son las ya mencionadas, CRUD (Create, Read, Update, Delete), típicas de cualquier sistema transaccional. A éste método, se le denomina "scaffolding" y sirve para implantar de manera inmediata un entorno de administración temporal sobre el que trabajar. El scaffold o andamio generalmente es removido de la aplicación y sustituido por métodos propios en el controlador. Para el objetivo de este video crearemos dos modelo de datos demo para los usuarios y sus respectivos posts en un blog utilizando el generador de código scaffold.
Los usuarios de nuestro blog demo tendrán un único identificador entero llamado id, nombre (string) y un email (string). Y para nuestro post tendrá un único identificador entero llamado id, titulo (string) y contenido (string) y un atributo que asocia cada posts a un usuario en particular, esto es el atributo user_id.

Como veremos mas adelante posts y users cada una corresponde a una tabla en una base de datos y sus atributos son columnas de cada tabla.
En esta sesion implementaremos el modelo de datos del user, junto con una interfaz web para el modelo. Vamos a pensar en un recurso user, el cual nos permitirá pensar en los users como objetos que se pueden leer, actualizar y eliminar a través del protocolo http. Nuestro recurso user será creado por un programa generador de código llamado scaffold el cual viene como estándar con cada proyecto de Rails.
Entonces,
$ rails generate scaffold User nombre:string email:string
Los parámetros que se pasan al comando scaffold son el nombre del recurso (User) junto con parámetros opcionales para los atributos del módulo de datos. Al incluir nombre y email hemos organizado el modelo de User de la imagen anterior. No hay necesidad de incluir el parámetro id, pues éste es creado automáticamnete por Rails para el uso de la clave principal o primary key de la Base de Datos.
Al igual que el recuso User, generamos código scaffold en este caso la aplicacion del modelo de datos post.
Entonces,
$ rails generate scaffold Post titulo:string contenido:string user_id:integer
Los argumnetos que se pasan al comando scaffold son el nombre del recurso (Post) junto con parámetros opcionales para los atributos del módulo de datos. Igualmente, no hay necesidad d incluir el parámetro id, pues éste es creado automáticamnete por Rails para el uso de la clave principal o primary key de la Base de Datos.
Por el momento no consideramos las asociaciones entre User y Post, eso lo veremos mas adelante en este video.
A continuación actualizaremos nuestra Base de datoscon los datos de los modelos, por eseo debemos migrar la Base de Datos con RAKE.
$ bundle exec rake db:migrate
Si usas RVM hacer:
$ rake db:migrate
Esto simplemente actualizará la Base de Datos con los modelos de user y post.
Con esto podemos correr el servidor web local usando rails server o rails s.
Vemos nuestra aplicacion demo en localhost:3000
Despues de ingresar a localhost:3000 nos mostrarà la misma página por defecto de Rails, pero al entrar a /users nos mostrarà una lista de todos los users y una pagina donde podemos crear un nuevo posts. Como vemos a continuacion la siguiente tabla muestran todas las acciones y su respectivas URLs.
>>>
URL Action Purpose
/users index page to list all users
/users/1 show page to show users with id 1
/users/new new page to make a new user
/users/1/edit edit page to edit user with id 1Partimos de la pàgina para mostrar todos los users de nuestra app que en un principio no hay user.
De la misma manera, accedemos a /posts nos mostrarà una lista de todos los posts y una pagina donde podemos crear un nuevo posts. Como vemos a continuacion la siguiente tabla muestra la correspondencia entre las páginas y las URLs.
>>>
URL Action Purpose
/posts index page to list all posts
/posts/1 show page to show posts with id 1
/posts/new new page to make a new post
/posts/1/edit edit page to edit post with id 1En un principio no hay posts.
Una de las caracteristicas de Rails es la capacidad de formar asociaciones entre diferentes modelos de datos. En nuestro caso cada user tiene nuchos posts. Podemos actualizar el modelo de user y el de posts como sigue.
>>>
A user has many microposts.
app/models/user.rb
class User < ActiveRecord::Base
has_many :microposts
end>>>
A micropost belongs to a user.
app/models/micropost.rb
class Micropost < ActiveRecord::Base
belongs_to :user
end