2013-01-07 111 views
0

因此,在我的Rails应用程序中,我有一个大的表单提交保存按钮点击,但我们还想要定期保存,当他们点击表单上的其他部分使用Ajax 。所以我设置了一个提交表单作为AJAX请求的方法。Rails 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' 

有谁知道如何提交一个Rails窗体使用Ajax,你传递像用户[]项目的数组没有得到这个错误?

+0

那是什么处理$ frm.serialize() – cih

+0

控制器代码,并请张贴的HTML表单 – moritz

回答

2

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

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

意外的错误而处理请求:`选择”

文本和复选框具有相同的名称预期散列(得到String)以PARAM =>“用户”。

0

此心不是答案为这个问题, 但对于某些情况下,发生这种情况, 当你有数据的阵列开始索引的0:空 [{数据:1},{数据:2}]

领先指数0可能会导致同样的错误