мягкое удаление монгоидного документа вместе со связанными документами - PullRequest
3 голосов
/ 16 августа 2011

У меня есть 2 модели, пользователь и сообщения

class User
  include Mongoid::Document
  include Mongoid::Paranoia
  references_many :posts, :autosave => true, :dependent => :destroy
end

class Post
  include Mongoid::Document
  referenced_in :user
end

Теперь, когда я мягко удаляю пользователя, я также хочу мягко удалить сообщения.Есть ли способ сделать это?

Для мягкого удаления документа, который я использую Mongoid :: Paranoia

Ответы [ 2 ]

1 голос
/ 27 декабря 2011

Почему вы хотите удалить сообщения пользователей? Если бы я следил за какой-либо веткой (я предполагаю, что посты были в потоке), и какой-то пользователь, который написал несколько постов в темах, удалил свой профиль, я бы не хотел, чтобы его посты были удалены. Это нарушит поток пост-темы.

Я знаю, что это не отвечает на ваш вопрос, но это может быть основанием для рассмотрения вопроса, действительно ли вам нужно удалить сообщения.

0 голосов
/ 16 августа 2011

Будет ли обратный вызов before_destroy делать то, что вам нужно? например,

class User
  include Mongoid::Document
  include Mongoid::Paranoia
  references_many :posts, :autosave => true, :dependent => :destroy
  before_destroy :delete_posts

  def delete_posts
    posts.delete_all
  end
end

class Post
  include Mongoid::Document
  include Mongoid::Paranoia
  referenced_in :user
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...