Alteras
(Steven Chang)
3
RubyでJSから呼び出せるAPIを作成したいようですね。例えば、Data Explorerプラグインは、Ruby側で管理者権限スコープを持つユーザー入力APIを実装しています。
Data ExplorerのJSはかなり複雑なので、おそらく必要となるであろう簡単な例を示します。
import { ajax } from "discourse/lib/ajax";
...
@action
sendTextboxData() {
ajax("/endpoint", {
type: "POST",
data: {
key: "value"
},
}).then((result) => {
// 結果を使って何かをする
};
}
ネイティブJSのfetch()でも同じことができますが、Discourseが提供するajax()関数は、内部でいくつかの細かい処理を処理してくれるようです。
Rubyコードが十分に軽量であれば、コントローラー全体を1つのファイルに収めることができるでしょう。そうでなければ、必要に応じて整理してください。