Why can't you just set them to nil in the posts table? Shouldn't that be the same as deleting them from current_company.posts.delete and post.campaign.posts.delete?