Я использую гем paranoia/acts_as_paranoid для мягкого удаления моих моделей.
У меня есть отношение 1 ко многим между сообщениями и комментариями. Они оба параноики и при уничтожении все работает как положено.
Мои отношения строятся так:
acts_as_commentable // in the post model
belongs_to :commentable, :polymorphic => true // in Comment model
Для комментариев я использую гем acts_as_commentable_with_threading.
Вот пример команд, иллюстрирующих проблему:
post.comments.count //8
post.destroy // this soft deletes the post and its comments
post.restore(:recursive => true) // this only restores the post
post.comments.count // 0
post.comments.with_deleted.count // 8
Спасибо!