하나의 JSON 요청 만 사용하여 여러 데이터베이스 항목을 만들려고합니다. 각 항목은 유형 (작업)과 시간 (작업이 발생한 시점)의 두 값으로 구성됩니다. 여러 요청을 하나의 요청으로 가져 오려면 JSON Array를 사용하고 있습니다. 나는이 같은 컨트롤러 (/actions.json
)에 POST 요청을 보낼 때레일스에서 JSON Array POST 요청을 처리하는 방법은 무엇입니까?
def create
respond_to do |format|
@actions = []
save_succeeded = true
params[:action].each do |action|
new_action = Action.new(type: action.type, time: action.time)
save_succeeded = false unless new_action.save
@actions << new_action
end
if save_succeeded
format.json { render json: @actions, status: :created }
else
format.json { render json: @actions.errors, status: 501 }
end
end
end
:
[{ "type": 0, "time": 1234567890 },{ "type": 0, "time": 1234567891 }]
내가 다시 빈 얻을
이 같은 컨트롤러가 보입니다의 조치를 생성의 나 무엇인가 배열 []
및 상태 코드 201 Created
.
즉, save_succeeded
변수는 여전히 유효하지만 동작이 배열에 추가되지 않았습니다. 또한 작업이 내 데이터베이스에 없습니다.
내가 뭘 잘못하고 있니? 나는 무엇을 간과하고 있는가?
답변 해 주셔서 감사합니다. 그것은 새로운 방향 (해시 값으로 매개 변수)을 시도해보고 비슷한 솔루션을 구현했습니다. 그러나 이전과 거의 비슷한 문제가 남아 있습니다. 오류 메시지가 표시되지 않지만 빈 배열과 동작이없는 상태 코드 201 (Created)이 발생합니다. 이것이 구현하기에는 어려움이 있으므로, 단일 요청 만 받아들이고 많은 요청을해야하는 구현 방법이 가장 적합 할 것입니다. 그래도 도와 줘서 고마워! – NerdyTherapist