Estoy buscando el mejor enfoque para eliminar registros de una tabla. Por ejemplo, tengo un usuario cuyo ID de usuario se encuentra en muchas tablas. Quiero eliminar este usuario y cada registro que tenga su ID en todas las tablas.
u = User.find_by_name('JohnBoy')
u.usage_indexes.destroy_all
u.sources.destroy_all
u.user_stats.destroy_all
u.delete
Esto funciona y elimina todas las referencias del usuario de todas las tablas, pero escuché que el destroy_allproceso era muy pesado, así que lo intenté delete_all. Solo elimina al usuario de su propia tabla de usuario y el idde todas las otras tablas se anula, pero deja los registros intactos en ellas. ¿Alguien puede compartir cuál es el proceso correcto para realizar una tarea como esta?
Veo que destroy_allllama a la destroyfunción en todos los objetos asociados, pero solo quiero confirmar el enfoque correcto.
delete_all, y 2)destroy_allcrea instancias de todos los registros y los destruye uno a la vez, por lo que con un conjunto de datos muy grande, esto podría ser dolorosamente lento.