# Staff tags cause duplicate tag index

**URL:** <https://meta.discourse.org/t/staff-tags-cause-duplicate-tag-index/292072>\
**Category:** Bug\
**Tags:** tags\
**Created:** [2024年一月18日 13:12 UTC](https://meta.discourse.org/t/staff-tags-cause-duplicate-tag-index/292072 "2024-01-18T13:12:10Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![hellekin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/hellekin/32/51636_2.png) [@hellekin](https://meta.discourse.org/u/hellekin)\
**Post date:** [2024年一月18日 13:12 UTC](https://meta.discourse.org/t/staff-tags-cause-duplicate-tag-index/292072/1 "2024-01-18T13:12:10Z")

</div>

继续讨论 [ActiveRecord::RecordNotUnique on idx\_tag\_users\_ix1：如何修复？](https://meta.discourse.org/t/activerecord-recordnotunique-on-idx-tag-users-ix1-how-to-fix/287078/5)：

> [@hellekin](#):
>
> 请注意， **症状** 已清除，但原因并不完全清楚。

错误已重现。我认为我正在追踪这个 bug。

### 重现步骤

1. 创建一个标签 #foo

2. 将标签 #foo 的使用限制为仅限 Staff  

3. 创建一个群组 Bar

4. 为群组 Bar 分配对标签 #foo 的“Watching”通知

5. 让一个非特权用户加入群组 Bar

6. 并将他们对 #foo 的个人通知更改为“Normal”

7. 非特权用户将无法再阅读页面

我 **怀疑** 这就是正在发生的事情，因为它已经发生在两个不同的人身上两次了。错误是这样的：[https://oxygen.offdem.net/logs/show/f70207d3affa8967932b9122d2be212b](https://oxygen.offdem.net/logs/show/f70207d3affa8967932b9122d2be212b)

也许标题有点限制性。我认为这更多地与标签对群组的限制和个人通知有关。

---

<div class="post-metadata">

**Author:** ![hellekin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/hellekin/32/51636_2.png) [@hellekin](https://meta.discourse.org/u/hellekin)\
**Post date:** [2024年一月30日 09:48 UTC](https://meta.discourse.org/t/staff-tags-cause-duplicate-tag-index/292072/2 "2024-01-30T09:48:17Z")

</div>

所有新用户现在都有一个重复条目，必须从控制台中删除：

```plaintext
 r = TagUser.connection.execute("SELECT user_id, tag_id, count(*) FROM tag_users GROUP BY tag_id, user_id HAVING count(*) > 1")
r.values.each { |uid,tag,_| TagUser.where(user_id: uid, tag_id: tag).last.destroy }

```

---

<div class="post-metadata">

**Author:** ![JammyDodger](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jammydodger/32/254611_2.png) [@JammyDodger](https://meta.discourse.org/u/JammyDodger)\
**Post date:** [2024年一月30日 12:26 UTC](https://meta.discourse.org/t/staff-tags-cause-duplicate-tag-index/292072/3 "2024-01-30T12:26:32Z")

</div>

我不确定我是否正确地重现了问题……

- 创建标签组

- 在标签组中创建 `#staff-tag` 标签

- 将“标签对所有人可见，但只有以下组可以使用它们”设置为 `staff`

- 创建组

- 在 `/manage/tags` 中，将 `#staff-tag` 添加到“关注”

- 将测试用户（TL2）添加到组

- 在“偏好设置/跟踪”中确认 `#staff-tag` 对测试用户为“关注”

- 导航到 `/tags/staff-tag` 并将铃铛图标更改为“正常”

一切似乎都正常？

---

<div class="post-metadata">

**Author:** ![hellekin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/hellekin/32/51636_2.png) [@hellekin](https://meta.discourse.org/u/hellekin)\
**Post date:** [2024年一月30日 22:31 UTC](https://meta.discourse.org/t/staff-tags-cause-duplicate-tag-index/292072/4 "2024-01-30T22:31:46Z")

</div>

> [@JammyDodger](#):
>
> 在 `/manage/tags` 中，将 `#staff-tag` 添加到“Watching”

我不确定这一步。我使用了组通知来将标签添加到组的“Watching”通知中。

---

<div class="post-metadata">

**Author:** ![JammyDodger](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jammydodger/32/254611_2.png) [@JammyDodger](https://meta.discourse.org/u/JammyDodger)\
**Post date:** [2024年一月31日 09:12 UTC](https://meta.discourse.org/t/staff-tags-cause-duplicate-tag-index/292072/5 "2024-01-31T09:12:52Z")

</div>

我是指这个页面：

 ![image](https://global.discourse-cdn.com/meta/original/4X/b/6/e/b6ec6e8795e22aa3e39bdd66ca1fec9b1a6a9177.png)

我可能缩写了链接 - `/g/GROUPNAME/manage/tags`

或者我需要从别的地方尝试？

---

<div class="post-metadata">

**Author:** ![hellekin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/hellekin/32/51636_2.png) [@hellekin](https://meta.discourse.org/u/hellekin)\
**Post date:** [2024年一月31日 09:56 UTC](https://meta.discourse.org/t/staff-tags-cause-duplicate-tag-index/292072/6 "2024-01-31T09:56:12Z")

</div>

我真的不知道。在 OFFDEM 之前我没法花太多时间在这上面。目前，我正在运行 SQL 请求来解决新用户遇到的问题。也许我忽略了一个细节。比如……所有类别默认都是静音的，这可能会影响通知。

---

<div class="post-metadata">

**Author:** ![JammyDodger](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jammydodger/32/254611_2.png) [@JammyDodger](https://meta.discourse.org/u/JammyDodger)\
**Post date:** [2024年一月31日 10:04 UTC](https://meta.discourse.org/t/staff-tags-cause-duplicate-tag-index/292072/7 "2024-01-31T10:04:34Z")

</div>

这可能很重要。您是否为此使用了“默认静音所有类别”设置？

---

<div class="post-metadata">

**Author:** ![hellekin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/hellekin/32/51636_2.png) [@hellekin](https://meta.discourse.org/u/hellekin)\
**Post date:** [2024年一月31日 10:18 UTC](https://meta.discourse.org/t/staff-tags-cause-duplicate-tag-index/292072/8 "2024-01-31T10:18:25Z")

</div>

是的，我确实使用了这个设置。
