Apparently :dependent is not ignored!
The real issue was that I was calling Comment.delete(id)
which goes straight to the db, whereas I now use Comment.destroy(id)
which loads the Comment object and calls destroy() on it. This picks up the :dependent => :destroy
and all is well.