使用AJAX在Rails中自动保存表单

我正在尝试为Post#new action自动保存一个表单。 每分钟左右,我想POST到Post#autosave,然后我将检查first_or_create并保存/更新Posts表中的记录。 我的问题是,我无法再从表单访问POST参数。 我试图这样做:

$(function() { if ($("#new_post").length > 0) { setTimeout(autoSavePost, 60000); } }); function autoSavePost() { $.ajax({ type: "POST", url: "/posts/autosave", dataType: "script", success: function(data) { console.log(data); } }); setTimeout(autoSavePost, 60000); } 

我有这条路线:

 post 'posts/autosave', as: :autosave_post_path 

问题是,服务器日志显示params散列只包含:action和:controller。 如何访问作为POST数据的一部分发送的内容的等效内容。

您还需要通过serialize方法传递data参数:

 $.ajax({ type: "POST", url: "/posts/autosave", data: $("#new_post").serialize(), dataType: "script", success: function(data) { console.log(data); } }); 

看看serialize()函数: http : //api.jquery.com/serialize/ :您可以使用它来创建一个数据数组,作为参数传递给您的控制器。