Saltar validación después de crear rieles monmongoides
-
22-10-2019 - |
Pregunta
Quiero omitir una validación después de crear un objeto. Tomemos un ejemplo
La persona tiene muchas empresas y compañía tiene muchas personas
La persona tiene muchas ubicaciones y ubicación pertenece a la persona que la persona puede tener solo una ubicación activa
El modelo de colocación tiene una validación que verifica si una persona ya tiene una ubicación activa cuando se guarda.
@placement is active placement
@employment.placement = @person
if @placement.save
#################
@person.placements << @placement
@company.placements << @placement
end
Ahora, cuando la ubicación se guarda por primera vez, no hay problema, se guarda.
Ahora el problema viene cuando
@person.placements << @placement
Dado que la persona ya tiene una colocación activa a través de @Placement.save.
@Person.placements << @Placement nuevamente guarda @Placement y el error de validación de validación al objeto @Placement.
¿Hay alguna forma de decir que no pase por esa validación específica?
O cualquier solución alternativa es bienvenida.
Gracias
Solución
puede usar: guardar: validate => false
Otros consejos
Lo primero que si quieres guardar después de todas las validaciones pasas, entonces haz algo como esto
if @placement.valid?
@person.placements << @placement
@company.placements << @placement
end
Lo siguiente es que si estás usando Mongoide entonces <<
llamada de operador .save
en ambos documentos.
La solución puede ser sobrescribida <<
de Mongoide, o la necesidad de speacificar la validación durante la cual la acción.
validates :placeholder, :on => :create
Y o
if @placement.valid?
@placement.person = @person
@company.placements << @placement
end