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.