0

因此,在我的 Rails 应用程序中,我有一个大表单,在单击“保存”按钮时提交,但我们还希望在他们使用 ajax 单击表单上的其他部分时定期保存。所以我设置了一个将表单作为 AJAX 请求提交的方法。

var $frm = $(form);
$frm.unbind('submit').submit(function() {
  $.ajax({
    type: $frm.attr('method'),
    url: $frm.attr('action'),
    data: $frm.serialize(),
    success: function (data) {
       // Errors out in Server side and does not succeed
    }
  });
  return false;
});
$frm.submit();

不幸的是,这在其他形式中也有效,但这种形式有点复杂,并且传递了一个对象数组,以下是我得到的错误:

!! Unexpected error while processing request: expected Hash (got String) for param `selected'

有谁知道如何使用 ajax 提交 Rails 表单,在其中传递诸如 users[] 之类的项目数组而不会出现此错误?

4

2 回答 2

2

请检查您的表格。这是因为有相同的名称,例如:

input type="text" name="user[email]" id="user_email"
input type="checkbox" name="user" value="1"

处理请求时出现意外错误:参数“selected”的预期哈希(获取字符串)

文本和复选框具有相同的名称 => “用户”。

于 2013-05-23T03:49:27.093 回答
0

这不是这个问题的答案,但在某些情况下,当您有起始索引为 0 的数据数组时会发生这种情况: null [ , {data:1}, {data:2}]

前导索引 0 可能导致相同的错误

于 2014-04-23T09:26:40.797 回答