Obtenha os dados da caixa de texto após pressionar o botão no plugin

Parece que o que você está procurando é criar uma API em Ruby que o JS possa chamar. Um exemplo é o plugin Data Explorer, que implementa uma API de entrada do usuário com escopo de permissão de administrador no lado Ruby.

O JS para o Data Explorer é um pouco mais robusto, então darei apenas um exemplo simplificado do que você provavelmente precisaria.

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

...
  @action
  sendTextboxData() {
    ajax("/endpoint", {
        type: "POST",
        data: {
          key: "value"
        },
    }).then((result) => {
        // fazer algo com o resultado
    };
  }

Você pode fazer a mesma coisa com um fetch() nativo do JS, mas parece que a função ajax() que o Discourse fornece lida com algumas pequenas coisas nos bastidores.

Se o seu código Ruby for leve o suficiente, você pode colocá-lo inteiramente em um único arquivo para o controller. Caso contrário, você pode organizá-lo como precisar.