2011-12-14 75 views
1

我的评论内容由用户发布。评论belongs_to :user和用户has_many :comments评论belongs_to被删除的用户。如何关联“占位符”?

但用户可以删除。如果完成,我宁愿不删除他们的评论,而是将他们的评论与一个虚拟用户相关联。

我能想到的几种方法:

  • 在评论的负荷,如果没有相关的用户发现,在内存中创建虚拟数据的用户。
  • 在评论加载时,如果找不到关联的用户,请从数据库中选择一个预定义的用户。
  • 移除评论时,将所有评论与数据库中的预定义用户相关联;通过一些后期过滤器。

我的感觉说头号是最干净的;因为另外两个需要数据库中的用户在代码中进行硬连线。如果用户18394将是那个“特殊”用户,那么我需要各种特殊用户的安全网。

回答

2

那么软删除用户呢?有一个名为User.active的布尔字段,并为User.active = t设置一个默认的作用域。当用户被删除时,将活动字段设置为false,并清除任何个人数据。

+1

有道理。额外的亲是,我可以级联删除用户的所有评论删除该用户。 – berkes 2011-12-14 17:08:23