2009-10-27 16 views
72

Necesito validar la unicidad de dos campos en un objeto (fila) antes de agregarlos. Employee_id y area_id son los dos campos en mi tabla emp_area. Puede haber múltiples registros con el mismo employee_id y múltiples registros con el mismo area_id, pero no hay dos registros que puedan tener el mismo employee_id y el mismo area_id. Esto es como dos campos que componen una clave principal o clave única.Cómo validar dos campos para unicidad

¿Cómo puedo hacer esto.

Gracias

+0

Eso fue todo gracias! – johnc

+0

posible duplicado de [¿Cómo se valida la exclusividad de un par de ID en Ruby on Rails?] (Http://stackoverflow.com/questions/923796/how-do-you-validate-uniqueness-of-a-pair- of-ids-in-ruby-on-rails) –

Respuesta

69
validates_uniqueness_of :employee_id, :scope => :area_id 
96

¿qué pasa con esta solución Validate combined values

validates :employee_id, uniqueness: { scope: :area_id } 
+3

Esto parece ser preferible a 'validates_uniqueness_of' ya que le permite establecer múltiples validaciones en la misma forma, por ejemplo 'presencia: verdadero'. –

+0

Para resaltar correctamente los mensajes de error que he creado también validates: area_id, uniqueness: {scope: employee_id} – Mauro

Cuestiones relacionadas