Hallo zusammen! Ich erstelle ein System, bei dem Tags automatisch erstellt werden, sodass jede Person Tags erstellen kann!
Zu diesem Thema:
- Tags werden in Form einer Themenerstellung erstellt
- Wenn es kein Tag gibt, das die Person erwähnt hat, wird es standardmäßig im Beitrag ignoriert
Mein Ziel war es, eine Möglichkeit für das automatische Tagging zu schaffen. Wenn #test1 also nicht existiert, soll es automatisch erstellt werden, und der aufbereitete Inhalt des Beitrags muss aktualisiert werden, um den Link zu den Tags zu aktualisieren, und so weiter.
Ich habe also einige Wege ausprobiert, um diese Anforderung zu erfüllen, und möchte Ihnen diese zeigen und fragen, ob es einen besseren Weg gibt, mein Ziel zu erreichen.
after_initialize do
DiscourseEvent.on(:post_created) do |post, _, user|
# Überprüfen von Kategori-Tags (#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
Ich schätze Ihre Hilfe sehr!