Hilfe beim Erstellen eines Plugins, das Ruby-Controller-Methoden überschreiben muss

Hallo,
Ich versuche, ein Plugin zu erstellen, das beim Erstellen eines Themas in der Benutzeroberfläche eine Checkbox anzeigt und im Grunde ein neues Attribut in der Topics-Tabelle speichert. Grundsätzlich muss ich das Attribut speichern, egal ob die Checkbox angeklickt wurde oder nicht, und dann das neue Attribut anzeigen, wenn eine Topics-Seite besucht wird.
Ich habe mit dem Backend begonnen, eine Migration hinzugefügt, die ein neues boolesches Attribut zu Topics erstellt, standardmäßig auf false gesetzt, und als nächstes habe ich am Controller gearbeitet. Aber ich konnte keine Möglichkeit finden, das neue Attribut in der Funktion posts vom TopicsController hinzuzufügen.
Ich konnte dazu nichts in den Tutorials finden.
Vielen Dank im Voraus!

after_initialize do

  module ::DiscourseXPlugin
    class ::TopicsController

      def posts
        Rails.logger.info '┌────────────┐'
        Rails.logger.info '│ Here we go │'
        Rails.logger.info '└────────────┘'
      end
    end
  end
end
1 „Gefällt mir“

Eine Alternative dazu wäre, eine neue Methode im Controller zu erstellen, wie z. B. „posts_with_new_attribute“, die über einen neuen Endpunkt ausgelöst wird, wenn die Checkbox angeklickt wird, aber ich bin mir nicht sicher, ob das komplizierter wäre.

1 „Gefällt mir“

Sie müssen dies mit einem Plugin-Outlet im Ember-Frontend tun.

Sie möchten ein TopicCustomField verwenden und keine Tabellen ändern.

Sie möchten das benutzerdefinierte Feld zum Topic-Serializer hinzufügen.

Sie können sich andere Plugins ansehen, die diese Dinge tun, um einige Beispiele zu finden.

1 „Gefällt mir“

Das hat funktioniert! Danke!!