在我的一个 Active Admin 索引页面中,我列出了表格中的一些记录。
我添加了 jQuery可排序插件,可以通过垂直拖动项目来对记录进行排序。这很好用,每个记录的position属性都正确更新(通过ajax)。
但是,如果我在ajax调用后刷新 Active Admin ,我会退出并再次登录。
Ajax发送此数据:
faq[]=1&faq[]=3&faq[]=2
排序方法:
def sort
params[:faq].each_with_index do |id, index|
Faq.update_all({position: index+1}, {id: id})
end
render nothing: true
end
ajax响应为空,不会给出任何异常。
为什么我要退出?
答案 0 :(得分:0)
出于某种原因,我必须将X-CSRF-Token
添加到ajax标头中。我不知道为什么。 rails.js不应该为我这样做吗?
工作解决方案:
$.ajax({
url: "/faqs/sort",
type: "post",
beforeSend: function(xhr) {
xhr.setRequestHeader('X-CSRF-Token', $('meta[name="csrf-token"]').attr('content'));
},
data: $(this).sortable('serialize')
});