Precisa adicionar tag quando qualquer uma das outras 4 tags existir no tópico

Olá a todos,

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 :arrow_up: 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 :person_shrugging: A maioria dos usuários finais não saberá sobre os requisitos da tag pai.

2 curtidas

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 :slight_smile:

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!

1 curtida

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.