rails/rails — pull request #17179 by eileencodes (2014-10-04 15:32:53+00:00)
Title: [ci skip] Clarify deletion strategies for collection proxies

For detailed testing of behavior see:
https://gist.github.com/eileencodes/5b0a2fe011dcff6203fe

This shows `destroy_all` always instantiates records and fires callbacks according to the `:destroy` strategy. It never uses nullify or delete_all strategies.

`delete_all`'s behavior varies greatly based on `hm` vs `hm:t` and deletion strategy. See test gist for clarification.

The documentation was mostly correct except for a delete_all with a `:destroy` dependency actually follows the `:delete_all` strategy not the `:destroy` strategy. This was changed in this PR https://github.com/rails/rails/pull/10604