Rails AJAX表单提交没有正确传递参数

时间:2013-01-07 22:42:48

标签: jquery ruby-on-rails forms

因此,在我的rails应用程序中,我有一个在Save按钮上单击提交的大表单,但我们还想在使用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 []这样的项目而不会出现此错误?

2 个答案:

答案 0 :(得分:2)

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

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

处理请求时出现意外错误:param“selected”

的预期Hash(获取字符串)

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

答案 1 :(得分:0)

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

领先索引0可能会导致相同的错误