Javascript ajax调用更新fullcalendar事件时发生RoutingError
我正在使用来显示rails应用程序上的事件。很好。现在,我希望在拖放操作时更新数据库中的事件。为此,我使用了方法和基于答案的ajax调用: 这是控制器上的更新方法: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
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 );
});