Erhalten Sie Textfelddaten nach Drücken des Buttons im Plugin

Es scheint, als ob Sie eine API in Ruby erstellen möchten, die von JS aufgerufen werden kann. Ein Beispiel ist das Data Explorer Plugin, das auf der Ruby-Seite eine Benutzereingabe-API mit Admin-Berechtigungsbereich implementiert.

Das JS für den Data Explorer ist ziemlich umfangreich, daher gebe ich nur ein vereinfachtes Beispiel dessen, was Sie wahrscheinlich benötigen werden.

import { ajax } from "discourse/lib/ajax";

...
  @action
  sendTextboxData() {
    ajax("/endpoint", {
        type: "POST",
        data: {
          key: "value"
        },
    }).then((result) => {
        // do something with the result
    };
  }

Sie können dasselbe mit einem nativen JS fetch() tun, aber es scheint, dass die von Discourse bereitgestellte ajax()-Funktion einige kleinere Dinge im Hintergrund handhabt.

Wenn Ihr Ruby-Code leicht genug ist, können Sie ihn wahrscheinlich vollständig in einer einzigen Datei für den Controller unterbringen. Andernfalls können Sie ihn nach Bedarf organisieren.