自动储存与AJAX Rails的一种形式(Autosaving a form in Rails wi

2019-08-17 02:23发布

我想自动保存为可用于邮政#新动作。 每分钟左右,我想发表后自动保存#,然后我会检查first_or_create并保存/更新记录在帖子表格。 我的问题是,虽然,我不能再从形式访问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哈希表,因为只有含有:动作和:控制器。 我如何可以访问什么将已发送的POST数据的一部分的等价物。

Answer 1:

你需要传递的data PARAM以及通过序列化方法:

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


Answer 2:

看看序列化()函数: http://api.jquery.com/serialize/ :您可以使用它来创建一组数据传递到您的控制器参数。



Answer 3:

所以,我在讲解新形式脚本

function autoSavePost() {
  $.ajax({
      type: "POST",
      url: '/quotes',
      data: $("#new_post").serialize(),
      dataType: "script",
  });
}

发送POST请求,其只呈现编辑表单DB中插入对象后,或更好的持续的记录后说控制器。

编辑页面生成后,我们写了一个脚本有一些间隔后只更新对象

function autoSavePost() {
    $.ajax({
      type: "PATCH",
      url: "/post/<%= post.id %>",
      data: $("#edit_post").serialize(),
      dataType: "script",
      success: function(data) {
        console.log("data")
      }
    });
    setTimeout(autoSavePost, 60000);
  }

因此,这种做法是非常有用和一个完全工作的自动保存表单功能,它可以在任何类型的对象来实现。 谢谢 !

完整的问题与对策链接何时以及如何我遇到了这个

自动保存功能表失败



文章来源: Autosaving a form in Rails with AJAX