Alteras
(Steven Chang)
3
听起来您想创建一个 Ruby API 供 JS 调用。例如,Data Explorer 插件在 Ruby 端实现了一个具有管理员权限范围的用户输入 API。
Data Explorer 的 JS 部分比较复杂,因此我将提供一个简化的示例,说明您可能需要什么。
import { ajax } from "discourse/lib/ajax";
...
@action
sendTextboxData() {
ajax("/endpoint", {
type: "POST",
data: {
key: "value"
},
}).then((result) => {
// do something with the result
};
}
您可以使用原生的 JS fetch() 来完成同样的事情,但 Discourse 提供的 ajax() 函数似乎在后台处理了一些小问题。
如果您的 Ruby 代码足够精简,您可能可以将其完全放入控制器的一个文件中。否则,您可以根据需要进行组织。