2011-06-07 10 views
7

Hola, tengo un modelo foo que tiene_una barra. Y el bar pertenece a foo. Me preguntaba si hay una manera de aumentar has_one de modo que no puedan pertenecer dos barras al mismo foo. Miré la documentación de has_one y parece que no hay ningún parámetro: uniq que pueda especificar. Entonces, ¿tengo que crear una validación personalizada para lograr esto? ¿O hay una forma más fácil?ruby ​​on rails has_one association with unique

Gracias.

Respuesta

0

creo que debe escribir su propia validación, ya que dos de grabación diferente de Foo no tiene idea acerca de los demás registro relacionado (Bar)

+0

Irrelevent. Eso sería preocupante si no quisiera que dos Foo tuvieran el mismo Bar. Pero eso no es lo que preguntó. – elc

14

Usted no necesita una validación personalizada, simplemente exigir la unicidad de la barra para cualquier foo dada

class Bar < ActiveRecord::Base 
    validates_uniqueness_of :foo_id 
end 
+0

Esto aseguraría que no haya dos foos con la misma barra, pero @dhruvg está buscando garantizar que no haya dos barras pertenecientes al * same * foo. –