Understanding :dependent => :delete_all?

I can't see what's wrong here but that's probably just because I'm so
new to Rails! To get right into it... I have 4 tables that look like
this:

Sites
- id

Projects
- id
- site_id
- user_id

Tasks
- id
- project_id
- user_id

Users
- id

The corresponding models:

class Site < ARB
  has_many :projects, :dependent => :delete_all
end

class Project < ARB
  belongs_to :site
  belongs_to :user
  has_many :tasks, :dependent => :delete_all
end

class Task < ARB
  belongs_to :project
  has_one :user
end

class User < ARB
  has_many :tasks
end

The idea is:
1. If you kill a site you kill all of its projects (this works)
2. If you kill a project you kill all of its tasks (this works if you
JUST delete a project but not if you delete an entire site)

I created a single site, then 4 projects and 5 tasks. I then deleted
the site. All of the projects were destroyed, but none of the tasks
were!? What am I doing wrong here?

My controller call to delete a site is pretty rudimentary:
Site.find(params[:id]).destroy

Ideas? Thanks for the help!

Greg

Great thanks for the response Dave! Much appreciated!