나는 stackoverflow에 이미 많은 질문이 있지만 그 중 아무 것도 유용하지 않다는 것을 알고있다.레일에서 Ajax 호출에 응답하는 방법
function update_schedule($task){
var taskId = $task.data("taskId"),
startHour, endHour,
userId = $('#users').val();
if(!$task.hasClass('daily-task')){
startHour = getStartHour($task),
endHour = startHour + (+$task.data('time'));
}
console.log(startHour, endHour)
$.ajax({
url: '/heimdall/update_scheduled_task',
method: 'POST',
data: { "task_id": taskId, "start_hour": startHour, "end_hour": endHour, "user_id": userId },
success: function(){
console.log("SUCESS!!", data['head'])
},
error: function() {
console.log("FAILURE");
},
async: true
});
}
컨트롤러 코드 :
def update_scheduled_task
scheduled_task = ScheduledTask.find_or_create_by(task_id: params[:task_id])
scheduled_task.update_attributes(start_hour: params[:start_hour], end_hour: params[:end_hour], task_id: params[:task_id], user_id: params[:user_id])
end
내가 발견 또는 생성 한 작업의 ID를 반환하려면 여기 내 아약스 코드입니다. 이 정보를 보내거나받는 방법을 모르겠습니다. 나는 그것에 대해 읽었지만 여전히이 경우에 그것을 사용하는 방법을 모른다.
여전히 오류가 발생합니다 : 잡히지 않은 SyntaxError : JSON의 위치 1에서 예상치 않은 토큰 o – Mark
컨트롤러에'scheduled_task.id'의 값을 인쇄하고 인쇄 할 글을 게시 할 수 있습니까? – Abhi
문제는 JSON을 두 번 파싱하고, 처음에는 렌더링시에 두 번째로 성공 함수에서 파싱했습니다. 데이터를 삭제 한 후 everythign은 완벽하게 작동합니다. 고맙습니다. – Mark