我目前有一个事件模型,控制器和视图。 我有一个更新事件的模式。它将ajax请求发送到更新操作。 但是我目前正在从ajax请求中接收到“ 422(无法处理的实体)”。
请求甚至没有击中控制器操作。 (我在更新操作的顶部有一个binding.pry)
我不确定为什么它不起作用,因为我也使用相同的ajax请求来创建事件。
Ajax请求:
$.ajax({
url: $form.attr('action'),
type: "PATCH",
data: data,
success: this.onAjaxSuccess.bind(this),
failure: function (error) {
debugger
console.log(error)
}
});
表单动作是:
/events/1
我试图通过删除任何不必要的代码(例如数据)来执行更新操作,但还是不走运。另外,我也看到了几条建议skip_before_action :verify_authenticity_token
的帖子,但这也没有用。
我不确定下一步是否可以提出任何建议。谢谢
答案 0 :(得分:0)
在评论中找到了Mark的答案。
这是一个before action
问题。
我有一张以前需要的支票,但我忘了把它删除。
答案 1 :(得分:0)
您的ajax请求可能需要使用csrf令牌,使用Rails帮助器构建更新表单,然后向请求添加标头
headers: {
'X-Transaction': 'POST Example',
'X-CSRF-Token': $('meta[name="csrf-token"]').attr('content')
}