> Wouldn't `participant.events.destroy_all # sets all participant_id fields in associated events to NULL` also delete the the Event record? 

I believe that `:dependent => :nullify` in @yipdw's suggestion would handle this. I'd want to be sure there was a spec that verifies that the events are not deleted, though.

I'm also not sure if `:dependent => :nullify` is the least surprising default but since the relationships are so complex it is probably safer. (I.e., we're always going to need special logic to handle deletions for the specific features where removing participants or events is necessary.)