If I want to completely delete a post, I should just hide them?

我不确定这是否是最理想的方案,但我使用了这段代码,将已删除话题中的用户帖子内容替换为 "[deleted]"。这样既保留了帖子的存在记录,而且看起来比彻底删除它们更安全。

# 先进行备份
deleted_topic_id = 1234
user_id = 5678

t = Topic.unscoped.find(deleted_topic_id)
ps = t.posts.select { |p| p.user_id == user_id }

# 使用 `ps.count` 进行检查

ps.each do |p|
  p.raw = '[deleted]'
  p.save
end