Neue Tags einer Tag-Gruppe zuordnen

Ich versuche herauszufinden, wie man erreichen kann, dass Tags, die von Benutzern in einer bestimmten Kategorie erstellt werden, automatisch einer bestimmten Tag-Gruppe zugewiesen werden. Ich habe gesucht und nichts gefunden, was derzeit verfügbar ist.

Sieht dieser Code so aus, als würde er das tun, was ich will?

enabled_site_setting :auto_tag_to_group_enabled

# Plugin-Einstellungen
register_site_setting :auto_tag_to_group_enabled, default: true
register_site_setting :auto_tag_category_name, default: "RestrictedCategory"
register_site_setting :auto_tag_group_name, default: "RestrictedTags"

after_initialize do
  module ::DiscourseAutoTagToGroup
    class Engine 								< ::Rails::Engine
      engine_name "discourse_auto_tag_to_group"
      isolate_namespace DiscourseAutoTagToGroup
    end
  end

  require_dependency "topic"
  class ::Topic
    after_save :auto_assign_new_tags_to_group, if: :auto_tag_to_group_conditions_met?

    private

    def auto_tag_to_group_conditions_met?
      # Prüfen, ob das Plugin aktiviert ist und das Thema Tags hat
      SiteSetting.auto_tag_to_group_enabled 														&& self.tags.present?
    end

    def auto_assign_new_tags_to_group
      # Die konfigurierten Kategorie- und Tag-Gruppennamen abrufen
      target_category_name = SiteSetting.auto_tag_category_name
      target_tag_group_name = SiteSetting.auto_tag_group_name

      # Die Kategorie und Tag-Gruppe finden
      target_category = Category.find_by(name: target_category_name)
      target_tag_group = TagGroup.find_by(name: target_tag_group_name)

      # Beenden, wenn Kategorie oder Tag-Gruppe nicht gefunden wurden
      return unless target_category 																						&& target_tag_group
      return unless self.category_id == target_category.id

      # Den Zeitstempel der Themenerstellung abrufen
      topic_created_at = self.created_at

      self.tags.each do |tag|
        # Prüfen, ob der Tag in der Nähe der Themenerstellungszeit erstellt wurde
        # Ein kleines Zeitfenster (z. B. 1 Minute) zulassen, um Verarbeitungsverzögerungen zu berücksichtigen
        if tag.created_at 																						&& tag.created_at >= (topic_created_at - 1.minute)
          # Prüfen, ob sich der Tag bereits in der Ziel-Tag-Gruppe befindet
          unless TagGroupMembership.exists?(tag_id: tag.id, tag_group_id: target_tag_group.id)
            # Den Tag zur Tag-Gruppe hinzufügen
            TagGroupMembership.create!(tag_id: tag.id, tag_group_id: target_tag_group.id)
          end
        end
      end
    end
  end
end

Ich bin auch auf eine ähnliche Anforderung gestoßen. Haben Sie sie gelöst?

Nein. Lassen Sie mich wissen, wenn Ihnen etwas einfällt.