As a guideline in my mind, has many through is an augmented habtm. In
that sense, destroying the owner of the association does not affect
the models in the target collection themselves, only the join models.
In a habtm there's no join model, just an auxiliary table. But in hmt
the join table is a model, and thus support for some sort of
:dependent would be nice.
Since the target is gonna be untouched, :destroy is enough for me. It
can only mean what you want to do with the join table.
It could also be the case that we implement and document that you are
gonna use whatever is configured in the ordinary has many of the join
model in the owner side. (People in examples seem to forget :dependent
in the has many with the join model, but you rarely want the default
class User < AR::Base
# this :dependent is what you normally would configure
has_many :subscriptions, :dependent => :destroy
has_many :magazines, :through => :subscriptions
In that case user.magazines=, user.magazines.clear, etc. could check
the config of has_many :subscriptions.
That interface could also emphasize that the important bit in these
associations is has_many :subscriptions, while the hmt is just a
convenience way to let AR do the joins and maintain the m-n table for
Should use it a bit to be convinced, but at first sight it looks
reasonable to me.