Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/415.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ajax调用更新fullcalendar事件时发生RoutingError_Javascript_Ruby On Rails_Ajax_Fullcalendar - Fatal编程技术网

Javascript ajax调用更新fullcalendar事件时发生RoutingError

Javascript ajax调用更新fullcalendar事件时发生RoutingError,javascript,ruby-on-rails,ajax,fullcalendar,Javascript,Ruby On Rails,Ajax,Fullcalendar,我正在使用来显示rails应用程序上的事件。很好。现在,我希望在拖放操作时更新数据库中的事件。为此,我使用了方法和基于答案的ajax调用: 这是控制器上的更新方法: def update @appointment.update(appointment_params) if @appointment.save respond_to do |format| format.js end else render js: "alert('Please inc

我正在使用来显示rails应用程序上的事件。很好。现在,我希望在拖放操作时更新数据库中的事件。为此,我使用了方法和基于答案的ajax调用:

这是控制器上的更新方法:

def update
  @appointment.update(appointment_params)
  if @appointment.save
    respond_to do |format|
      format.js
    end
  else
    render js: "alert('Please include phone number');"
  end
end
这些是rake路由上的路由:

PATCH  (/:locale)/companies/:company_id/users/:user_id/appointments/:id(.:format)      appointments#update
PUT    (/:locale)/companies/:company_id/users/:user_id/appointments/:id(.:format)      appointments#update
DELETE (/:locale)/companies/:company_id/users/:user_id/appointments/:id(.:format)      appointments#destroy
但是,我不断得到以下错误:

ActionController::RoutingError (No route matches [POST] "/es/companies/1/users/50/appointments/140"):
以防万一;实际上,数据库中存在属于属于公司1的用户50的id为140的约会


谢谢

将您的ajax请求更改为PUT或PATCH将解决您的问题,但是我不确定这是有意的。我的意思是:

        $.ajax({
            type: "PATCH",
            dataType: "script",
            url: update_source,
            contentType: 'application/json',
            data: { resource:{start:event.start, end: event.end} }
        }).done(function( msg )
        {
            alert( "Data Saved: " + msg );
        });

它将调用更新操作。另外,您不需要JSON.stringify,只需传递数据{…}。

有效!谢谢@blelump@ntonnelier你能指导我完成同样的任务吗?嗨@AnitaShalu,对我来说,问题是将操作从POST更改为补丁。如果行得通,你应该试试。
        $.ajax({
            type: "PATCH",
            dataType: "script",
            url: update_source,
            contentType: 'application/json',
            data: { resource:{start:event.start, end: event.end} }
        }).done(function( msg )
        {
            alert( "Data Saved: " + msg );
        });