# 诡异的追踪事件 👻

**URL:** https://meta.discourse.org/t/spooky-tracking-happenings-ghost/61255
**Category:** Bug
**Created:** [2017年四月19日 13:59 UTC](https://meta.discourse.org/t/spooky-tracking-happenings-ghost/61255 "2017-04-19T13:59:28Z")
**Posts on this page:** 1
**Showing post:** 8

<div class="post-metadata">

### Author: ![david](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/david/32/157490_2.png) [@david](https://meta.discourse.org/u/david)
#### Post date: [2017年四月20日 21:36 UTC](https://meta.discourse.org/t/spooky-tracking-happenings-ghost/61255/8 "2017-04-20T21:36:13Z")

</div>

> [@LeoMcA](#):
>
> 所以，这里的 bug 是：当某个板块被追踪时，之前在该板块中已打开过的主题会被纳入追踪，并显示在“未读”中（除非之前已被标记为已读），而之前从未打开过的旧主题则不会发生任何变化。

这个问题是我之前发现的，相关讨论帖可以在[这里](https://meta.discourse.org/t/watching-tracking-old-topics/51606)找到（我不太确定为什么它从 #Contribute > Bug 板块移到了 #Contribute > Feature 板块）。

这个讨论帖有点令人困惑，因为我最初以为这个问题是由从 phpBB 导入数据引起的。所以这里尝试总结一下：

归根结底，一个主题不能同时处于 `new`（新）和 `unread`（未读）状态：

- 尽管它被隐式追踪，但由于用户从未查看过该主题，它不会显示在 `unread`（未读）中
- 主题不会显示在 `new`（新）中，因为它超过了你的“将主题视为新的时间范围”设置所设定的阈值

解决这个问题很难，因为让板块中的每一个旧主题都出现在你的“未读”标签页中，用户体验确实不好。

“自动标记为已读”在数据库层面开销很大（因为你刚刚追踪的板块中的每个主题都需要创建一个新的 TopicUser 记录）。

我们确实没有想出什么整洁的解决方案，讨论也就此沉寂。@sam 提出的一个选项是

> [@sam](#):
>
> 也许我们可以做一件“成本低”的事情。
> 
> 如果某个被追踪板块中的主题被顶起，就根据新的持续时间将其重新添加回“新”列表中。
> 
> 这感觉还是有点奇怪。

当时，我认为这可能是一个好主意：

> [@david](#):
>
> 目前，“新”标签页是按“topic.bumped\_at”排序，但按“topic.created\_at”过滤的。这样设计的考虑是什么？主题在不再被声明为“新”后没有从列表底部“消失”，这似乎有点不符合直觉。至少对于我的论坛来说，如果能按“topic.bumped\_at”进行过滤，那就太好了。

但

> [@sam](#):
>
> 像这样的改动带来的问题是，许多用户会对如何把东西从“新”列表中移除感到困惑。

**TL;DR** ：我没有解决方案，但希望这能让问题更清晰 😉

---

_[View the full topic](https://meta.discourse.org/t/spooky-tracking-happenings-ghost/61255)._
