“标签无效”——可能是由于未指定的插件所致

使用一个标签时一切正常,但使用多个标签时,有时会阻止用户发帖并显示该错误信息。

您可以稍后编辑帖子并添加任意数量的标签,有时系统也会允许您发帖。

后端是否有需要更改的设置?也许这种间歇性现象意味着用户无法同时创建多个标签,或者在已有标签存在时无法创建新标签。

其他人遇到过这种情况吗?

您使用的是工单插件还是标签组?我认为当我尝试在其他地方使用工单标签时,也会遇到这种情况。

您的分类设置中是否有任何与标签相关的配置?是否发现报错的标签存在某些共性?如果您能够复现该问题,是否尝试过查看日志或开发者控制台?在安全模式下是否也会出现此问题?

谢谢您的回复。我并没有使用这两个插件中的任何一个。

我的网站中有几个完全相同的重复标签,这似乎导致了问题,但仅在它们与其他标签组合时才会出现。两个 ‘web-dev’ 标签是完全相同的。

以下是控制台中显示的错误代码:

POST Public Happiness 422

你是怎么创建两个“web-dev”标签的?:thinking:

我也想了解一下,Neil :upside_down_face:

通常我在创建帖子时会生成它们。

我有几个插件会使用标签,但其中没有一个将’web-dev’定义为标签……不过,它们过去可能确实这样定义过。我们的菜单链接组件使用的是’web-developers’。

嗨,Andy!哎呀,真抱歉这个问题这么棘手。你网站 Public Happiness 的标签页链接有点帮助,我觉得——正如你所见,那里有不少奇怪的问题……没有标签组,这点倒是很清楚。如果你按名称(字母顺序)排序,会看到在 D 之后出现了一些空白标签……这很奇怪,也指向了某个更大的问题。

你能确认一下在安全模式下(仅启用官方插件,未启用任何主题自定义)是否也看到同样的问题吗?

你是否在重建实例时,已经在 app.yml 中删除或注释掉了你不想要的那些非官方标签插件?也许它们仍在产生影响。

我怀疑所有空白标签的出现,都是每次你在保存多个标签时遇到问题导致的,包括那些明显奇怪的标签,因为它们在标签页上多次出现。你可以通过加载标签页、尝试复现问题,然后查看是否新增了一个空白标签来测试这一点。

除了上述建议之外……如果我是你,我会先进行一些标签整理。:slight_smile: 通常来说,你不需要这么多标签,尤其不应该有那些可能只会出现一次的标签。你可以通过标签页删除或合并标签。我建议直接删除那些重复出现的标签,或者将它们合并到一个新的临时标签中,确保原始标签已被删除,然后再将该临时标签重命名为你想要的标签名称。

在这种情况下,任何使用标签名称的 UI 都可能会出现意外行为。你需要使用 Rails 控制台删除所有重复的标签记录以及名称为空的标签。之后,请检查你使用的插件,排查导致这些问题的错误。此外,tags 表可能缺少防止重复标签名称的索引。

@syl 这看起来是否可能是 Docuss 的 bug?它在使用标签时表现得不合常规。我有一个删除未使用标签的选项,其中大约一半是 Docuss 标签。其余的似乎来自已删除的帖子。(不包括空白标签。)

@Andy02

  1. /tags 页面上的空白标签是由 Docuss 引起的。我刚刚在 文档 中添加了一个章节来解释原因。作为管理员,您可以使用 Alt+a 来取消隐藏空白标签,从而更轻松地排查您的问题。

  2. 我认为 Docuss 与重复标签或“标签无效”消息无关。请禁用 Docuss,查看“标签无效”消息是否消失。如果消失了,请随时在 Docuss 仓库 中提交问题。

这解决了隐藏/空白标签的问题。但问题仍然存在,因此必定是其他原因导致的。我仍在调查中。

好的,我无法确定具体原因,但以下是我目前发现的线索。

该错误在安全模式下(启用所有插件)以及关闭主题时均会出现。但这并不意味着是默认系统或我们安装的默认系统存在 bug,因为更有可能是某个插件将重复的标签写入数据库,即使该插件已关闭,这些标签仍残留其中并引发问题。

为了修正此问题,我一直在搜索重复标签并将其更改为其他名称(例如将 ‘web-dev’ 改为 ‘webdev’)。

我注意到有些标签被设置为“帖子”状态,但却未显示在列表中。因此,网站会提示我还有 12 个剩余的 ‘web-dev’ 标签,但搜索功能却无法找到它们。

许多帖子在标签输入框中包含了完全相同的标签,删除其中一个时,另一个也会被一并删除。

我目前的最佳推测是:引发问题的标签同时也被作为链接嵌入到帖子正文中。因此,当有人在帖子正文中输入 #web-dev 时,系统会创建一个标签;如果该标签已存在于帖子标题中,就会生成重复标签。

我打算尝试强制触发这种情况,以便观察其发生过程。

不过,似乎还有其他问题。如果你查看 这个搜索结果,会发现置顶帖子实际上并不包含 ‘web-dev’(因为我已将其更改),但搜索功能仍然在某处检测到了它。

编辑:忽略最后那部分,搜索功能只是过于“智能”了。使用 相同的搜索 并加上引号搜索 " web-dev " 即可排除这些误报。

……但“推荐话题”功能仍然能发现那些“搜索”功能看不到的标签:

更新:问题依旧存在。我能找到的唯一重复标签是 web-dev。我已删除所有我能找到或通过搜索栏发现的该标签。现在,如果我使用 web-dev 标签发布帖子,帖子会正常发布,而不会再出现“无效”错误提示。但点击 web-dev 标签试图查找系统提示存在于论坛中的另外三个标签时,却显示 404 错误。我不确定这些标签是存在于帖子中,还是数据库中的某种“幽灵”残留。

这是我使用 web-dev 标签发布的测试帖子,该标签我已费尽周折从论坛中移除。目前我是否需要在数据库层面直接清除该标签?(我没有发现其他标签造成类似问题)。

好的,看来现在问题已经解决了,只需浏览我们的网站,移除那个“web-dev”标签,然后使用“删除未使用的标签”工具即可。

遗憾的是,我无法确切说明导致该问题的原因,以便将来更好地帮助其他人。我会继续留意,看看这种情况是否会再次发生。

我修改了你们之前编辑的标题。我不确定是哪个插件导致的。事实上,唯一可以排除的是 Docuss,因为该插件的作者亲自过来检查了是否是他们的代码出了问题,并认为不是。