domingo, 25 de octubre de 2009

La absurdez hecha duda

Hoy me ha surgido la duda de cómo hacer una validación de unicidad sobre dos atributos de un modelo. Nunca había tenido que hacer algo similar en Rails.

La mejor opción que he encontrado ha sido

validates_uniqueness_of :family_id, :scope => :user_id

Esto validará que para cada valor de user_id el valor de family_id es único. Seguro que hay una solución mejor y más estándar, pero yo no me la sé.

Weno, pues nada. Ha sido breve pero intenso. Salud y rocanrol.

We all came out to Montereax
On the Lake Geneva shoreline
To make records with a mobile
We didn't have much time
Frank Zappa and the Mothers
Were at the best place around
But some stupid with a flare gun
Burned the place to the ground
Smoke on the water, fire in the sky
Smoke on the water...


1 comentario:

eLafo dijo...

Yo tuve que hacer algo parecido y el problema que me encontré fue el siguiente:

¿qué pasa si se realizan dos peticiones simultáneas con el mismo campo "único", de forma que cuando se va a validar el modelo de la segunda todavía no se ha guardado el de la primera?

Se podría optar por añadir un índice único a la base de datos, pero si se diera el caso que comento entonces saltaría una excepción de base de datos (de cuyo nombre no quiero acordarme), que habría que tratar.