繁体   English   中英

Ruby on Rails在Ajax中的路由错误

[英]Routing error in ajax on ruby on rails

我的.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

在我的route.rb中:

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

但是何时提交显示:

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

问题出在哪里? ajax url中的路由是什么?

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

尝试将“ / 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更改为“ script”,以使其与format.js正确匹配,否则格式将为/ ,这将选择您在response_to块中指定的第一种格式。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM