Alteras
(Steven Chang)
3
원하시는 것은 Ruby에서 API를 만들어 JS에서 호출할 수 있게 하는 것 같습니다. Ruby 측에서 관리자 권한 범위를 가진 사용자 입력 API를 구현한 Data Explorer 플러그인이 좋은 예시가 될 수 있습니다.
데이터 탐색기(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 코드가 충분히 가볍다면 컨트롤러를 단일 파일로 구성할 수 있을 것입니다. 그렇지 않다면 필요에 맞게 자유롭게 구성하시면 됩니다.