0

我的 .html.erb 代码中有这个:

 $.ajax({
 url: "/timeMachineEdit",
 data: {editTimeMachine: newArray},
 type: 'POST',
 success: function (res) {
     if (res.result === 'ok') {
     alert('Data saved');
     } else {
     alert('Save error');
     }
},
error: function () {
     alert('Save error.');
     }
});

这在我的 datasets_controller.rb

def timeMachineEdit 
    @dataset = current_user.dataset
    @dataset.machine_time = params[:editTimeMachine]
end

在我的 routes.rb 中:

match "/timeMachineEdit", to: "datasets#timeMachineEdit"

但是当提交时显示:

POST http://localhost:3000/timeMachineEdit 500 (Internal Server Error) 

这里的问题在哪里?是ajax url中的路由还是其他什么?

4

1 回答 1

0

问题出在您的路线定义中......

尝试将“/timeMachineEdit”匹配到:“datasets#timeMachineEdit”

我认为,由于格式的性质,它仍然无法正常工作。在 datasets_controller 中尝试以下代码...

def timeMachineEdit 
  @dataset = current_user.dataset
  @dataset.machine_time = params[:editTimeMachine]
  respond_to do |format|
    format.js 
  end
end

还将您的 AJAX 请求的 dataType 更改为“脚本”,以便将其与 format.js 正确匹配,否则格式将为/,它将选择您将在 respond_to 块中指定的第一种格式。

于 2013-10-02T17:48:58.377 回答