大家好!我正在创建一个系统,让标签可以自动生成,这样每个人都可以创建标签!
关于这件事:
- 标签是以创建主题的形式生成的
- 如果帖子中提到的标签不存在,默认情况下将被忽略
我的目标是创建一种自动标记的方法:如果 #test1 不存在,就自动创建它,并刷新帖子的已渲染内容以更新标签链接等。
因此,我尝试了一些方法来实现这一需求,想向大家展示并请教是否有更好的方式来实现我的目标。
after_initialize do
DiscourseEvent.on(:post_created) do |post, _, user|
# 处理类别标签(#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
感谢大家的支持!