Fma965
(Fma965)
1
大家好,
我最近对我的论坛进行了一些重构,并开始使用标签。
我正在努力解决的一个问题是(我知道这不是原生功能,但也许有简单的插件?)当创建一个带有标签“sync1”、“sync2”、“sync3”或“sync4”的新主题时,我还需要附加标签“apim”。有人知道我该如何做到这一点吗?
不幸的是,我的 Ruby 技能有所欠缺。
我看到过这两个链接:
和
但我不知道如何将其改编为仅检查主题上是否存在这 4 个标签中的任何一个,而不是像这些示例那样进行检查。
基本上,如果粉色标签中的任何一个存在于主题中,就应该自动添加绿色标签。
DiscourseEvent.on(:topic_created) do |topic|
guardian = Guardian.new(Discourse.system_user)
required_tag_names = [”sync1”, “sync2”, “sync3”, “sync4”]
DiscourseTagging.tag_topic_by_names(topic, guardian, [\"apim\"], append: true) if topic.tags.exists?(name: required_tag_names)
end
你需要这个
代码。
编辑:你也可以通过添加一个标签组并将“apim”设置为父标签来强制执行。在这种情况下,用户只能在选择父标签“apim”后选择“sync”标签。
我认为如果我们允许用户先选择子标签,然后自动添加父标签,那会更有用
大多数最终用户不会知道父标签的要求。
2 个赞
Fma965
(Fma965)
3
太好了,我通常会自己解决这些问题,但 Ruby 不是我的专长,我感觉会有人在几分钟内就给出一个例子 
现在我只需要弄清楚如何将它添加到插件中,但我确定这很简单。
我同意,有时选择一个会添加父级的子标签可能是首选结果。
感谢您的帮助。
编辑:插件已创建并按预期工作,非常感谢您的帮助!
1 个赞
system
(system)
关闭
4
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.