Fiz algumas reestruturações no meu fórum recentemente e comecei a usar tags.
Uma coisa com a qual estou lutando (sei que não é nativo, mas talvez exista um plugin simples?) é que, quando um novo tópico é criado com a tag “sync1”, “sync2”, “sync3” ou “sync4”, preciso também anexar a tag “apim”. Alguém sabe como posso fazer isso?
Minhas habilidades em Ruby são limitadas, infelizmente.
Eu vi ambos
e
mas não tenho certeza de como posso adaptar isso para simplesmente verificar se alguma das 4 tags está no tópico, em vez das verificações que os exemplos atuais têm.
Basicamente, se alguma das tags em Rosa existir no tópico, a tag Verde também deve ser adicionada automaticamente.
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
Você precisa deste código.
Editar: Você também pode impor isso adicionando um grupo de tags e definindo “apim” como a tag pai. Nesse caso, os usuários só poderão escolher as tags “sync” após selecionar a tag pai “apim”.
Acho que seria mais útil se permitíssemos aos usuários selecionar as tags filhas primeiro e depois adicionássemos a tag pai automaticamente A maioria dos usuários finais não saberá sobre os requisitos da tag pai.
Excelente, geralmente tento resolver essas coisas sozinho, mas Ruby não é minha especialidade e eu tinha a sensação de que alguém teria um exemplo em questão de minutos
Agora só preciso descobrir como adicionar isso a um plugin, mas tenho certeza de que é bem simples.
Concordo que, às vezes, selecionar uma tag filha que adiciona uma tag pai pode ser um resultado preferível.
Obrigado pela sua ajuda.
EDIT: plugin criado e funcionando como pretendido, muito obrigado pela sua ajuda!