Il semble que vous cherchiez à créer une API en Ruby que le JS puisse appeler. Un exemple est le plugin Data Explorer, qui implémente une API d’entrée utilisateur avec une portée d’autorisation d’administrateur côté Ruby.
Le JS pour le Data Explorer est assez conséquent, je vais donc vous donner un exemple simplifié de ce dont vous auriez probablement besoin.
import { ajax } from "discourse/lib/ajax";
...
@action
sendTextboxData() {
ajax("/endpoint", {
type: "POST",
data: {
key: "value"
},
}).then((result) => {
// faire quelque chose avec le résultat
};
}
Vous pouvez faire la même chose avec un fetch() JS natif, mais il semble que la fonction ajax() fournie par Discourse gère quelques petites choses en arrière-plan.
Si votre code Ruby est suffisamment léger, vous pouvez probablement le faire tenir entièrement dans un seul fichier pour le contrôleur. Sinon, vous pouvez l’organiser comme vous le souhaitez.