## Rails.ajax 를 사용해서 POST Request 보내고 레일즈 Controller에서 받는 방법(How to request and receive POST request by using Rails.ajax at Ruby on Rails)
레가시 코드가 Rails.ajax를 사용하고 있어, Rails.ajax로 새로운 function 을 만들어 사용하려고 했는데, POST의 경우 data가 잘 넘어가지 않았다. 정확히 말하면, data 형태가 object 형태로 전송되어 Rails 쪽에서 데이터 처리를 할 수 없었다.
그래서 방법을 찾아본 결과 데이터형태를 FormData 형태로 변환한 뒤 보내니, 원하는 JSON 형태로 받을 수 있었다. 자세한 방법은 다음과 같다.
```
//some.js
let hashData = {"one": 1, "two": 2, "three": 3}
let someData = new FormData()
someData.append("data", JSON.stringify(hashData))
Rails.ajax({
url: '/something',
type: 'POST',
data: someData,
success: function(response) {
console.log(response)
}
})
```
위와 같이 보내고 싶은 데이터를 FormData 객체에 append 로 JSON.stringify 함수로 변환해 넣으면 된다. Rails Controller에서는 다음과 같이 받아서 사용하면 된다.
```
# some_controller.rb
data = JSON.parse(params["data"])
```
출처: stackoverflow 에서 참고한건데 다시 찾으려니 못찾겠음..ㅠ
댓글
댓글 쓰기