Ottieni i dati della casella di testo dopo aver premuto il pulsante nel plugin

Sembra che quello che stai cercando sia creare un’API in Ruby che il JS possa chiamare. Un esempio è il plugin Data Explorer, che implementa un’API di input utente con ambito di autorizzazione amministrativa sul lato Ruby.

Il JS per il data explorer è piuttosto corposo, quindi fornirò solo un esempio semplificato di ciò di cui probabilmente avresti bisogno.

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

...
  @action
  sendTextboxData() {
    ajax("/endpoint", {
        type: "POST",
        data: {
          key: "value"
        },
    }).then((result) => {
        // fai qualcosa con il risultato
    };
  }

Puoi fare la stessa cosa con un fetch() nativo di JS, ma sembra che la funzione ajax() fornita da Discourse gestisca alcune piccole cose a livello di codice.

Se il tuo codice Ruby è abbastanza leggero, puoi probabilmente inserirlo interamente in un unico file per il controller. Altrimenti, puoi organizzarlo come preferisci.