[QuickTut] Scaffolding en Rails: Creando apps en Segundos

A veces tenemos un tiempo muy pero muy corto para hacer un prototipo de aplicación. Aunque puede resultar algo divertido programar todo desde cero la mayoría de las veces, cuando no hay tiempo no hay tiempo. Es aquí cuando ocupamos interesantes herramientas como el scaffolding de Rails para lograr nuestros objetivos. ¿Recuerdan el post de Crear un blog en Rails que hicimos hace tiempo para ayudar a las personas a aprender Rails? Bueno, pues les sorprendería saber lo mucho que podemos acortar el tiempo de creación de la misma aplicación con scaffolds. Veamos entonces:

1) Una base sólida

Aunque el scaffolding se puede usar directamente sin hacer nada en una app rails, aquí yo usaré mis Handy-ROR-Templates para crear un esqueleto Mongoid sobre el cual trabajar sin hacer setup de nada. Tras bajar las HRT (Handy-ROR-Templates) veremos que hay una que se llama mongoid-app.rb; La podemos usar para generar nuestra app de la siguiente manera:

rails new app_name -m mongoid-app.rb -TO

Cambiando "app_name" por el nombre de nuestra app, en este caso yo usaría "blog".

2) Scaffolding

Luego nos vamos a la carpeta creada para la aplicación en nuestra consola y crear un blog básico con scaffolds es tan sencillo como:

rails g scaffold Post title:string content:text

NOTA: Al crear un scaffold le pasamos el nombre capitalizado y en singular del objeto que vayamos a crear con los diferentes campos o atributos que debe tener en la base de datos y sus tipos de dato específicos como se muestra en el comando de arriba. Esto nos generará Controladores, Modelos y Vistas ya preparadas para lanzar la aplicación y poderla utilizar apenas corramos ese comando de scaffolding.

Eso nos generará todos los archivos necesarios para tener la aplicación corriendo en cuestión de segundos, pero nada es perfecto. ¿Qué le falta antes del Fire up? Una ruta principal y validaciones más que nada... Continuemos:

Ruta Principal:

Abrimos nuestro config/routes.rb y añadimos la siguiente línea al archivo:

root :to => "posts#index"

Debe quedarnos algo así:


Luego eliminamos el archivo public/index.html y listo.

Validaciones:

Ahora nos falta acomodar las validaciones, nos vamos a nuestro modelo de Post en app/models y añadimos las siguientes validaciones hasta abajo:

validates :title, :content, :presence => true
validates :title, :length => { :minimum => 2 }
validates :title, :uniqueness => { :message => "El titulo ya se uso" }

Nos ha de quedar algo como:


Y eso es todo, ahora sólo nos queda abrir nuestra app en vivo desde http://localhost:3000 con el comando:

rails s

para poder empezar a usarla directamente. Notarán que ya tenemos todas las vistas y demás cosas necesarias acomodadas y listas para trabajar directamente con la app, podemos crear posts, editarlos, borrarlos etc. Y todo esto 100% generado de forma automática (y cabe destacar que también limpia) por Rails y su Scaffolding.

P.D. Este post ha sido añadido a muestro curso gratuito de rails para disfrute de todos ustedes.