이 작업은 간단한 플러그인으로 수행할 수 있습니다.
수행해야 할 작업
플러그인은 다음을 수행해야 합니다:
-
known_tags라는 사용자 사용자 정의 필드를 추가합니다. 이는 문자열 목록입니다. -
사용자가
known_tags를 편집할 수 있는 사용자 프로필 인터페이스를 추가합니다. 이를 위해 완전히 새로운 프로필 탭을 추가할 필요는 없다고 생각하지만, 원한다면 추가할 수도 있습니다. 사용자가 직접 편집하는 것을 원하지 않는다면, 관리자만 편집할 수 있도록 설정하고 CSV 파일에 기반하여 사용자 프로필에 직접 들어가서 업데이트하면 됩니다. -
PostCreator의before_create_post또는post_created이벤트를 사용하여 토픽의 태그에 기반하여 원하는 내용을 게시물에 추가하는 이벤트 후크를 추가합니다.
수행 방법
1번과 2번 부분은 아래에 링크된 토픽의 다른 모델에 대한 예시 플러그인과 매우 유사합니다. 유추하여 스스로 해결해 볼 수 있는지 확인해 보세요. 정말 막막하다면 그 부분에 대한 힌트를 요청해 주세요.
3번 부분도 플러그인의 plugin.rb 파일에 들어가게 됩니다. 다음과 같은 형태가 될 것입니다.
on(:post_created) |post, opts, user|
if post.is_first_post? && post.topic.tags.present?
user_ids = UserCustomField.where(name: 'known_tags', value: post.topic.tags).pluck(:user_id)
usernames = User.where(id: user_ids).pluck(:username)
new_raw = post.raw + "something something #{usernames}"
PostRevisor.new(post).revise!(
user,
{
raw: new_raw,
edit_reason: "some reason"
},
skip_validations: true,
bypass_bump: true
)
end
end
스스로 한번 도전해 보세요. 정말 막막해지면 도와드리겠습니다. 스스로 해결하려는 강한 의지가 보이면 더 적극적으로 도와드리고 싶어 하거든요 ![]()