habtm relation and dependent => :destroy

Panda Beer wrote:

Hi all ,
I have a habtm relation between 2 tables:
- users
- rights

If there a way to affect a destroy dependance on those 2 tables only for
the last instance? In my opinion, dependent => :destroy is not the
solution because this delete all the linked instance.

For example, if I have:
# in User model this:
  - "Joooooo"
  - "Jeannnn"
  - "Tommmm"
# in Right model this:
  - "Write"
  - "Read"
# in the habtm relation this:
  - "Joooooo" can "Write"
  - "Joooooo" can "Read"
  - "Jeannnn" can "Read"

I would like to be able to delete "Read" in Right model, and automaticly
deleting "Jeannnn" user too, because this user have no other right. But
without deleting "Joooooo" user (because he remains have a right named
"Write").

Perhaps something like:

class Right
  after_destroy do
    User.find(:all, :uniq => true, :joins => :rights,
              :conditions => 'rights.id is NULL').each(&:destroy)
  end
end