주제에 다른 4개 태그 중 하나가 있으면 태그를 추가해야 합니다

여러분 안녕하세요,

최근 포럼을 일부 재구성하면서 태그를 사용하기 시작했습니다.

제가 어려움을 겪고 있는 부분은 다음과 같습니다(네이티브 기능은 아니지만, 간단한 플러그인이 있을까요?). 새 토픽이 “sync1”, “sync2”, “sync3” 또는 “sync4” 태그와 함께 생성되면 “apim” 태그도 자동으로 추가되도록 해야 합니다. 이 방법을 아시는 분이 있을까요?

아쉽게도 제 Ruby 실력이 부족합니다.
다음 두 자료를 확인해 보았지만,

그리고

이 예제들이 현재 수행하는 검사 대신, 해당 4개의 태그 중 아무거나 토픽에 존재하는지만 확인하도록 어떻게 수정해야 할지 확실하지 않습니다.

결국, 분홍색으로 표시된 태그 중 하나라도 토픽에 존재하면, 초록색으로 표시된 태그가 자동으로 추가되어야 합니다.

DiscourseEvent.on(:topic_created) do |topic|
  guardian = Guardian.new(Discourse.system_user)
  required_tag_names = [”sync1”, “sync2”, “sync3”, “sync4”]
  DiscourseTagging.tag_topic_by_names(topic, guardian, ["apim"], append: true) if topic.tags.exists?(name: required_tag_names)
end

위 :arrow_up: 코드가 필요합니다.

수정: 태그 그룹을 추가하고 "apim"을 부모 태그로 설정하여 이를 강제할 수도 있습니다. 이 경우, 사용자는 부모 태그 "apim"을 선택한 후에만 “sync” 태그를 선택할 수 있습니다.


사용자가 자식 태그를 먼저 선택할 수 있도록 하고, 부모 태그는 자동으로 추가하는 방식이 더 유용할 것 같습니다 :person_shrugging: 대부분의 일반 사용자는 부모 태그 요구 사항을 알지 못하기 때문입니다.

훌륭합니다. 보통 이런 것들은 제가 직접 알아내곤 하지만, Ruby는 제 전문 분야가 아니어서 누군가 몇 분 안에 예제를 보여줄 것 같은 기분이었거든요 :slight_smile:

이제 플러그인에 이를 추가하는 방법만 알아내면 되는데, 꽤 간단할 것 같네요.

때로는 자식 태그를 선택하면 부모 태그가 추가되는 것이 더 바람직한 결과일 수 있다는 데 동의합니다.

도와주셔서 감사합니다.

수정: 플러그인을 만들고 의도대로 작동하게 했습니다. 정말 많은 도움을 주셔서 감사합니다!