3

我有 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的文档

4

2 回答 2

1

为什么要删除用户的帖子?如果我正在关注某个线程(我假设帖子是线程的),并且某个在线程中写了一些帖子的用户删除了他的个人资料,我不希望他的帖子被删除。这会破坏后线程的流程。

我知道这并不能回答您的问题,但这可能是您考虑是否真的需要删除这些帖子的理由。

于 2011-12-26T23:41:55.070 回答
0

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
于 2011-08-16T16:38:54.057 回答