Ver destruir elimina sus elementos asociados donde delete_all puede eliminar múltiples datos de la tabla propia comoDELETE * FROM table where field = 'xyz'
: Opciones posibles dependientes:
Controla lo que sucede con los objetos asociados cuando su propietario es destruido. Tenga en cuenta que estos se implementan como devoluciones de llamada, y Rails ejecuta devoluciones de llamada en orden. Por lo tanto, otras devoluciones de llamada similares pueden afectar el comportamiento dependiente, y el :dependent
comportamiento puede afectar otras devoluciones de llamada.
:destroy
hace que todos los objetos asociados también sean destruidos.
:delete_all
hace que todos los objetos asociados se eliminen directamente de la base de datos (por lo que no se ejecutarán las devoluciones de llamada).
:nullify
hace que las claves foráneas se establezcan en NULL. Las devoluciones de llamada no se ejecutan.
:restrict_with_exception
hace que se genere una excepción si hay registros asociados.
:restrict_with_error
hace que se agregue un error al propietario si hay algún objeto asociado.
Si se usa con la :through
opción, la asociación en el modelo de unión debe ser un pertenece a, y los registros que se eliminan son los registros de unión, en lugar de los registros asociados.