¿Cómo se escribe de la manera Rails? Tengo un modelo: gerentes. Quiero eliminar todos los registros de administradores que cumplan la condición de que manager_level es 5.Rieles: elimine todos los registros que cumplan una condición
Gracias.
¿Cómo se escribe de la manera Rails? Tengo un modelo: gerentes. Quiero eliminar todos los registros de administradores que cumplan la condición de que manager_level es 5.Rieles: elimine todos los registros que cumplan una condición
Gracias.
Creo que es mejor utilizar destruir en lugar de borrar:
Manager.where(:manager_level => 5).destroy_all
Esto debería funcionar:
Manager.where(:manager_level => 5).delete_all
Nota: Esto no eliminará los registros dependientes.
Prueba esto:
Manager.delete_all(manager_level: 5)
1. Tengo que utilizar una variable para especificar lo que desea eliminar. 2. La tabla no tiene un índice, es una tabla de conector entre otras 2 tablas. –
No funcionó para mí. Hubo un error debido a la integridad referencial. –
esta debería ser la respuesta aceptada, ya que otras consultas intentan SELECCIONAR antes de BORRAR, lo que conduce a problemas de rendimiento en grandes conjuntos de datos. – toobulkeh
Definitivamente válido, pero tenga en cuenta: "Destruye las condiciones de coincidencia de registros instanciando cada registro y llamando a su método de destrucción". (http://apidock.com/rails/ActiveRecord/Relation/destroy_all) Esto podría ser muy lento para grandes conjuntos de resultados. –
Sí, estaba pensando en mantener los modelos consistentes y esas cosas. – MurifoX
@MurifoX - ¿Puedes explicar por qué crees que destruir es mejor que eliminar? No necesariamente en desacuerdo, pero ayudaría a que tu respuesta sea más completa. –