2011-03-31 6 views
15

Quiero saber si hay una forma en Rails 3, en la que puedo validar la unicidad de 2 campos que combinados.¿Cómo validar la singularidad en el modelo de Rails 3 si quiero verificar si hay una combinación de 2 campos?

La lógica de esta manera:

Tengo dos campos employee_code y date_entry.

  • Caso 1: Si la combinación employee_code y date_entry existe ya que no permitirá que para salvar a otro registro con el mismo employee_code y date_entry.

  • Caso 2: Si el employee_code y date_entry existe pero no en el mismo registro, permitirá guardar el campo.

Respuesta

35
validates_uniqueness_of :employee_code, :scope => [:date_entry] 

tres o más columnas, todo lo que necesita hacer es añadir elementos a la lista alcance:

validates_uniqueness_of :employee_code, :scope => [:date_entry, :another_column] 

o Rails 3:

validates :employee_code, :uniqueness => {:scope => :date_entry} 
+0

¡Hombre funcionó! ¿Qué hay de 3 campos? – johan

+2

respuesta actualizada. –

+0

Gracias, hombre ... Funcionó de nuevo. – johan

13

Esto es para rieles 3:

Para hacer esto con solo 2 columnas, puede acaba de hacer algo como:

valida: empcode,: singularidad => {: Ámbito =>: date_entry}

Desde hace más de 2 columnas que puede hacer algo como:

valida: empcode,: uniqueness => {: scope => [: date_entry,: description]}

Cuestiones relacionadas