Rails

01 Jul

Rails 5

Published by ApuX

Rails 5 acaba de ser liberado con diversos cambios y mejoras.

24 Jan

Reiniciando automáticamente Unicorn con Monit

Published by hermes.ojeda

Para desplegar nuestras aplicaciones Rails utilizamos Nginx+Unicorn+Capistrano.

La tarea de Capistrano que se encarga de hacer el 'restart', lo único que hace es hacer un touch a un archivo 'restart.txt' en nuestra aplicación. Pero en realidad no reinicia nuestro servidor, específicamente Unicorn que es el que se encarga de despachar nuestra aplicación.

09 Nov

[Tip] Reusar definiciones de pasos de Cucumber dentro de otras.

Published by carlos.garcia

Para reusar un paso que anteriormente definimos dentro de otro paso en le mismo archivo, la manera de hacerlo es con step pasándole como parámetro el texto entre comillas del paso que queremos llamar.

Ejemplo:

Paso a reusar

30 Sep

Merge

Published by ApuX

Merge

Hay una funcionalidad de Rails que yo utilizo bastante pero tengo la impresión de que no es tan difundida como debería. Estoy hablando del metodo merge de ActiveRecord. Posiblemente la razón por la que no es muy utilizado es que existe un metodo con el mismo nombre en la clase Hash y eso provoca cierta confusion.

El merge de Hash

El metodo merge de Hash mezcla dos hashes y devuelve el resultado en un tercer hash. Ejemplo:

23 Sep

Merge

Published by ApuX

Merge

Rails has a functionality that I use a lot but I think it is not as widespread as it should. I'm talking about the ActiveRecord's merge method. Probably, the reason why this method is not widely used is because there is a method with the same name in the Hash class and that causes some confusion.

Hash's merge

The Hash's merge method merges two hashes and returns a third hash. Example:

28 Aug

Rails: Cómo correr una única migración (up/down)

Published by fernando.villalobos

Rails

Para quienes no lo saben, dentro de un proyecto Rails, el mismo framework lleva un registro sobre el estado de la estructura de nuestra base de datos; cada uno de estos estados está asociado a una versión de migración (un número generado en base a una timestamp). Ésto nos permite regresar (o adelantar) a un estado específico de la base de datos:

26 Aug

[Breve] Presentación sobre RSpec

Published by ApuX

Hace tiempo me encontré una presentación sobre RSpec que está muy completa y me ha resultado bastante útil. Aquí se las comparto. Espero que también les sea de utilidad.

http://kerryb.github.io/iprug-rspec-presentation

El autor es kerryb.

05 Aug

Shoulda matchers

Published by ApuX

Al probar modelos en Rails, solemos encontrarnos con cierto trabajo repetitivo. Para ejemplificar, supongamos un modelo que tiene dos campos: first_name y nickname. El campo first_name no debe estar vacío y el campo nickname debe tener una longitud entre 5 y 10, o bien, quedar en blanco. Nuestro modelo de Rails sería:

15 Jul

Cambiar sentencias OR a sentencias IN en una consulta de ActiveRecord

Published by ApuX

En una consulta SQL, las sentencias OR pueden sustituirse por sentencias IN si dependen de un solo campo y la comparación es hecha con igual.

Ejemplo:

SELECT * FROM products WHERE category = 'fancy' OR category = 'expensive'

puede escribirse como sigue

SELECT * FROM products WHERE category IN ('fancy', 'expensive')

Esto es un poco más fácil de leer en SQL, pero la diferencia principal está en la versión de ActiveRecord. La versión del OR puede escribirse como sigue:

09 Jul

Presentación: Desarrollo Guiado por Comportamiento con Cucumber y Rails en VII Simposium de Software Libre de la Mixteca

Published by hermes.ojeda

En el VII Simposium de Software Libre de la Mixteca, tuve el placer de dar una plática relacionada con BDD y la forma en que se puede hacer con Cucumber y Rails.

Desgraciadamente no se pudo incluir en la presentación, pero durante la presentación realicé un pequeño "Hola Mundo" desde cero, con Cucumber y Rails.

Espero les pueda ser de utilidad.

09 Jul

Rails: Búsquedas sin alcance/ámbito (unscoped) en ActiveRecord

Published by fernando.villalobos

Rails

Cuando trabajamos con modelos ActiveRecord en Rails, solemos definir scopes de búsqueda (los más comunes suelen ser para ordenamiento o filtrado), por ejemplo:

07 Jul

Change OR statement to IN statement in an ActiveRecord query

Published by ApuX

In a SQL query, OR statements can be changed to IN statements if it depends on one field and the comparison is done with equals.

Example:

SELECT * FROM products WHERE category = 'fancy' OR category = 'expensive'

can be written as follows

SELECT * FROM products WHERE category IN ('fancy', 'expensive')

This is a little easier to read in SQL but the main difference is in the ActiveRecord version. The OR version can be written as follows

30 Jun

[Breve] Cucumber, analizar velocidad de los escenarios

Published by hermes.ojeda

Un parámetro muy útil para analizar por qué se tardan tanto tiempo nuestros escenarios es el siguiente:

cucumber --format usage

Usando este parámetro nos dará un resumen del tiempo que se tardan cada uno de nuestros steps en ejecutarse, esos nos ayuda a determinar los cuellos de botella en nuestra pruebas.

Happy testing!

25 Jun

Rails 4

Published by ApuX

Finalmente, después de mucho trabajo por parte de los miembros del equipo core de rails y en general de la comunidad rails al rededor del mundo, hoy se ha liberado la versión 4.0 del popular framework de desarrollo web.

22 May

Generando diagrama de modelos en Rails 3

Published by hermes.ojeda

Cuando al desarrollar una aplicación en Rails 3 esta se vuelve demasiado compleja, algo que puede resultar muy útil es tener el diagrama que nos muestre las relaciones entre los diferentes modelos, para poder realizar un análisis más general.

Una forma de hacerlo fácilmente es utilizando railroady.

Para hacerlo seguimos los siguientes pasos: 1. Instalar primero el programa graphviz que nos permitirá generar el diagrama:

Páginas