Crear fixtures fácilmente 3

Posted by david

Ruby on rails nos proporciona muchas comodidades a la hora de hacer desarrollos orientados a test. Quizá uno de los mayores inconvenientes sea tener que escribir nuestas fixtures, porque al trabajar con modelos algo complicados puede que no sean todo lo válidas que nos gustaría.

Fixturease es una gema que nos permite crear fixtures directamente a partir del modelo de nuestra aplicación.

Su instalación es muy sencilla:

sudo gem install fixturease

Una vez instalada, nos situamos en el directorio raiz de nuesta aplicación y ejecutamos el script fixturease.rb. Este, nos abrirá una consola que nos permitirá crear nuestas fixtures.

Supongamos que ejecutamos en esta consola el siguiente comando:

@david = User.create(:login => 'david', :password => 'pass')

Fixturease nos creará el fichero fixtures/users.yml con la siguiente entrada:

david:
  id: 1
  password: pass
  login: david
  created_at: 2007-01-20 21:40:23.250000 +02:00

Creo que es una buena forma de tener un poco más de control sobre nuestas fixtures y no tener que centrarnos en escribir un fichero yaml a mano.

Extender relaciones de ActiveRecord 1

Posted by david

Hay veces que te encuentras pequeños trucos de Rails que muestran en unas pocas líneas de código toda la potencia de este framework.

En este caso James Buck, nos enseña como extender relaciones entre objectos ActiveRecord añadiendoles métodos adicionales.

Con este simple truco podremos escribir código tan limpio como:

mail.inbox.unreaded

de una forma mucho más eficiente de la que algunos estamos acostumbrados.