has_many usa la estrategia: nullify, que establecerá el foráneo en nulo. Para has_many: a través de él usará delete_all.
Para has_many, destroy siempre llamará al método destroy del registro que se está eliminando para que se ejecuten las devoluciones de llamada. Sin embargo, eliminar hacer la eliminación de acuerdo con la estrategia especificada por la : opción dependiente, o si no se da la opción dependiente, entonces seguirá la estrategia predeterminada. La estrategia predeterminada es: anular (establecer las claves externas en nil), excepto para has_many: through, donde la estrategia predeterminada es delete_all (eliminar los registros de combinación, sin ejecutar sus callbacks ).
- ActiveRecord::Associations::ClassMethods
No estoy seguro exactamente lo belongs_to hace, y no era capaz de encontrar nada en la documentación. Trataré de cavar un poco pronto y actualizaré la respuesta.
si no se especifica esto, usted va a terminar con los niños abandonados llorando por sus padres.Eso no es gran cosa, pero mantiene su base de datos llena de datos (inútiles) – apneadiving