假设我有这 4 个模型。
然后我使用acts_as_paranoid
为每个模型调用的 gem 来实现逻辑删除。
- 用户
- 社区
- 话题
- 评论
用户可以随时辞职。这意味着用户的记录将被删除。
在一般情况下,用户创建的社区、主题和评论也应该一起删除。(w/依赖=>销毁)
但是,我不希望那样。因为其他用户可能已将社区添加到他的书签列表中。因此,出于这个原因,它们不应该被删除。
当假设用户记录被删除但所有这些社区、主题和评论仍然存在时,它开始在社区页面或用户所做的任何地方返回 nil 错误。
我现在就这样编码。
由于用户记录消失了,但所有记录仍然存在,因此到处都是零。
我该如何处理这种问题?
意见/社区/show.html.erb
<%= @community.user.username %>
我想要做的是,用这个固定词“未找到用户”替换显示的用户名。然后可能我只是将社区的所有权(user_id)更改为其他用户,以便他可以管理这个社区。
我的协会就是这样。
模型/用户.rb
has_many :communities
has_many :topics
has_many :comments
模型/社区.rb
belongs_to :user
has_many :topics
has_many :comments
模型/topic.rb
belongs_to :user
belongs_to :community
has_many :comments
模型/comment.rb
belongs_to :user
belongs_to :community
belongs_to :topic