主题拆分导致引用在新主题中显示为已删除消息

我尝试清晰地描述这个 bug:

主题 A 有 7 条帖子。
第 7 条帖子引用了第 6 条帖子中的一部分文本。
我们将第 3 条及之后的帖子拆分到了新主题 B,因为这部分内容偏离了主题。

在新主题 B 中,第 4 条帖子(即主题 A 中的第 7 条帖子)显示引用了主题 A 中已被删除的第 6 条帖子,引用块内显示了一个垃圾桶图标。而我认为在新主题中应该显示对第 3 条帖子(即主题 A 中的第 6 条帖子)的引用。

有人能复现这个问题吗?我所在的版本是 (60a235d128)

3 个赞

是的,我可以在这里复现:https://try.discourse.org/t/topic-splitting-test-part-two/1388。当我尝试展开拆分后主题中最后一条帖子的引用时,会向帖子被拆分前的原主题发送请求。该请求返回 404 响应,并导致显示垃圾桶图标。

2 个赞

这很奇怪。作为访客,我没有看到垃圾桶图标,但看到了正确的引用——链接是可用的。

编辑:实际上,该链接指向的是移动消息:

点击展开帖子的箭头图标会发生什么?

啊,那个垃圾桶。我其实不记得在我的生产环境中是否曾经看到过原始引用文本。

我尝试在此修复该问题:

这是一个尽力而为的修复方案,它尝试利用 quoted_postsmoved_posts 中的数据,将诸如 post:{旧帖子编号}topic:{旧话题 ID} 之类的结构进行替换,而无需判断其是否确实属于 [quote] 标签的一部分。

4 个赞