I am trying to autosave a form for the Post#new action. Every minute or so, I want to POST to Post#autosave and then I'll check for first_or_create and save/updated the record in the Posts table. My problem though is, I can no longer access the POST params from the form. I am trying to do it like so:
$(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);
}
I have this route:
post 'posts/autosave', as: :autosave_post_path
The problem is, the server log shows the params hash as only containing :action and :controller. How can I access the equivalent of what would have been sent as part of the POST data.
You need to pass the
data
param as well, via serialize method:Take a look at the serialize() function: http://api.jquery.com/serialize/ : You can use it to create an array of data to pass to your controller as parameters.