Ruby On Rails, Active Record + Andamiaje en acción

Profundizando un poco más en Ruby on Rails llegamos a otro de los innovadores conceptos que nos ofrece, el Andamiaje.
Para explicar lo que es el Andamiaje en RoR, nada mejor que utilizar un ejemplo en el cual además os habréis visto miles de veces.
En todas las aplicaciones en las que hayáis trabajado existirán una serie de tablas maestras en base de datos, y como siempre, para tenerlas “al dí­a”, tendréis que haber dedicado su tiempo al mantenimiento de las mismas (vamos, lo de siempre, insertar, editar y borrar). Seguramente muchos de vosotros tendréis el proceso automatizado, por lo que al crear una nueva tabla maestra dispondréis de herramientas que vosotros mismos habréis creado para facilitar dicho mantenimiento.
La historia de todo esto es que Ruby On Rails os provee la posibilidad de automatizar los mantenimientos de tablas maestras de forma automática, sencilla y práctica. Como sabremos ya, RoR es un Framework Web asentado totalmente en MVC, por lo que para mostraros la potencia del andamiaje, se van a utilizar conceptos relacionados con el mismo.
Empezamos con el ejemplo, vamos a crear una tabla maestra que se encargue de almacenar coches, para ello, en lugar de irnos a la base de datos y crearlo desde allí­, utilizamos Active Record para hacerlo (ya hemos hablado de Active Record en este blog).
ruby script\generate model Coches
Veremos que RoR ha creado una nueva migración y la ha dejado en /db/migrate/create_coche.rb
La editamos, para que muestra finalmente el siguiente aspecto
class CreateCoches < ActiveRecord::Migration
    def self.up
        create_table “coches” do |t|
            t.column “nombre”, :string
            t.column “fecha_alta”, :datetime
        end
    end
    def self.down
        drop_table “coches”
    end
end
Sí­, sí­, aunque parezca mentira estáis definiendo vuestra tabla a través de código ruby. Y no sólo es eso, como veréis estáis definiendo como crear la tabla y como echarla “patrás” (contra-medidas). Esto es algo estupendo, vamos, estupendí­simo, estáis creado los scripts de base de datos y sus contra-medidas de forma clara y totalmente automatizada, y lista para echarse para atrás en caso de ser necesario.
Bien, después de esto, ejecutamos el script (y todos los que hayamos necesitado crear)
rake migrate
A partir de aquí­, magia, si consultamos nuestra base de datos veremos la tabla creada con los campos correspondientes, más un campo sorpresa que RoR genera de forma automática, el campo “id”, el cual crea como clave primaria de la tabla.
Bien, ahora si todo siguiera el curson normal tendrí­amos que dedicarnos a crear el mantenimiento de la tabla, pero… RoR nos va a volver a ayudar utilizando el Andamiaje. Para utilizar andamiaje lo deberemos hacer en el Controlador, y para ello
ruby script\generate controller Coches
Y añadimos el método “scaffold” al controlador
class CochesController < Application Controller
    scaffold :photo
end
Y voila! Ya tenemos el mantenimiento creado… Podréis verlo levantanto WebRick (el servidor web del propio RoR) entrando en http://localhost:3000/Coches… veréis que podréis editar, actualizar e insertar nuevos coches 🙂 mola, no? 🙂
Eso sí­, el interfaz gráfico deja mucho que desear, pero eso es algo que hablaremos más adelante 🙂
Saludos!

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.