Salut à tous ! Je crée un système où les tags sont générés automatiquement, afin que chaque personne puisse créer des tags !
À ce sujet :
- Les tags sont créés sous forme de création de sujet
- Si le tag mentionné par la personne n’existe pas, il sera ignoré par défaut dans le message
Mon objectif était de mettre en place une méthode de taggage automatique, de sorte que si #test1 n’existe pas, il soit créé automatiquement et que le contenu cuisiné du message soit actualisé pour mettre à jour le lien vers les tags, et ainsi de suite.
J’ai donc essayé plusieurs approches pour répondre à ce besoin, et je souhaiterais vous les montrer pour savoir s’il existe une meilleure façon d’atteindre mon objectif.
after_initialize do
DiscourseEvent.on(:post_created) do |post, _, user|
# Passage des tags de catégorie (#test:item1)
tags = post.raw.split(' ').select { |t| t =~ /#/ && !t.include?(':') }
tags.each do |t|
tName = t.gsub('#', '')
Tag.create_or_find_by(name: tName)
end
postAnalyzer = PostAnalyzer.new(post.raw, post.topic_id)
cookedRaw = postAnalyzer.cook(post.raw)
post.cooked = cookedRaw
post.save
post.publish_change_to_clients!(:revised, reload_topic: true)
end
end
Merci pour votre aide !