title: delete_all vs destroy_all?
body: <p>I am looking for the best approach to delete records from a table. For instance, I have a user whose user ID is across many tables. I want to delete this user and every record that has his ID in all tables.</p>
  
  <pre><code>u = User.find_by_name('JohnBoy')
  u.usage_indexes.destroy_all
  u.sources.destroy_all
  u.user_stats.destroy_all
  u.delete
  </code></pre>
  
  <p>This works and removes all references of the user from all tables, but I heard that <code>destroy_all</code> was very process heavy, so I tried <code>delete_all</code>. It only removes the user from his own user table and the <code>id</code> from all the other tables are made null, but leaves the records intact in them. Can someone share what the correct process is for performing a task like this? </p>
  
  <p>I see that <code>destroy_all</code> calls the <code>destroy</code> function on all associated objects but I just want to confirm the correct approach.</p>