Pregunta

En los carriles 2.x puede utilizar validaciones para asegurarse de que tiene un valor único combinado de esta manera:

validates_uniqueness_of :husband, :scope => :wife

En la migración correspondiente que podría tener este aspecto:

add_index :family, [:husband, :wife], :unique => true

Esto se aseguraría de que la combinación marido / esposa es único en la base de datos. Ahora, en Rails 3 la sintaxis de validación cambió y el atributo scope parece haber desaparecido. Ahora parece que:

validates :husband, :presence => true

Cualquier idea de lo que puedo lograr la validación combinado en Rails 3? Los rieles 2.x validaciones todavía trabajo en Rails 3 por lo que se siguen utilizando el primer ejemplo, pero se ve tan "viejo", hay mejores maneras?

¿Fue útil?

Solución

Oso conmigo. La forma en que el método valida en ActiveModel funciona es la búsqueda de un validador.

miradas :presence => true para PresenceValidator y pasa las opciones:. true a inicializador del validador

Pienso que desea

validates :husband, :presence => true, :uniqueness => {:scope => :wife}

(El validador singularidad es en realidad parte de ActiveRecord, no ActiveModel. Es muy interesante cómo los desarrolladores configurar esto. Es muy elegante.)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top