안녕하세요 여러분! 태그가 자동으로 생성되는 시스템을 만들고 있습니다. 이렇게 하면 모든 사람이 태그를 생성할 수 있습니다!
관련 사항에 대해 설명드리면 다음과 같습니다:
- 태그는 주제 생성 시 생성됩니다.
- 해당 사용자가 언급된 태그가 없으면, 기본적으로 게시물에서 무시됩니다.
제 목표는 자동 태그 생성 방식을 만드는 것이었습니다. 예를 들어 #test1이 존재하지 않으면 자동으로 생성하고, 게시물에 조리된(cooked) 콘텐츠를 새로고침하여 태그 링크 등을 업데이트하는 방식입니다.
이 요구 사항을 수행하기 위해 여러 방법을 시도해 보았고, 제 방법을 보여드리며 더 나은 방법이 있는지 여쭤보고 싶습니다.
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
도움 주시면 감사하겠습니다!