Ruby on rails 表单序列化问题

Ruby on rails 表单序列化问题,ruby-on-rails,jquery,Ruby On Rails,Jquery,我有一张表格。我试图通过AJAX GET请求验证它 所以我试图发送GET请求数据中的字段值 $('#uxMyForm').serialize(); 问题是它返回了一些无法理解的东西。我以前使用过序列化。这太奇怪了 serialize的返回值为 actionsign_upcontrollersitedataauthenticity_token=oRKIDOlPRqfnRehedcRRD7WXt6%2FQ0zLeQqwIahJZJfE%3D&customer%5BuxName%5D=&a

我有一张表格。我试图通过AJAX GET请求验证它

所以我试图发送GET请求数据中的字段值

$('#uxMyForm').serialize();
问题是它返回了一些无法理解的东西。我以前使用过序列化。这太奇怪了

serialize的返回值为

 actionsign_upcontrollersitedataauthenticity_token=oRKIDOlPRqfnRehedcRRD7WXt6%2FQ0zLeQqwIahJZJfE%3D&customer%5BuxName%5D=&customer%5BuxEmail%5D=&customer%5BuxResidentialPhone%5D=&customer%5BuxMobilePhone%5D=&customer%5BuxDateOfBirth%5D=&customer%5BuxAddress%5D=&customer%5BuxResidentialStatus%5D=
我不知道怎么用这个

谢谢

更新:

我的问题是如何处理这样的请求?像这样

puts params[:data][:customer][:uxName]
params[:customer][:uxName]
我的GET请求触发器如下所示

$.get('/site/sign_up',{data : $('#uxMyForm').serialize() }, function(data){
 alert(data);
});
上面的jquery行生成请求。。关于动作方法,我做了以下几点

render :text => params
当我观察GET中发送的内容时,在firebug参数中

**data** authenticity_token=oRKIDOlPRqfnRehedcRRD7WXt6%2FQ0zLeQqwIahJZJfE%3D&direct_customer%5BuxName%5D=&direct_customer%5BuxEmail%5D=&direct_customer%5BuxResidentialPhone%5D=&direct_customer%5BuxMobilePhone%5D=&direct_customer%5BuxDateOfBirth%5D=&direct_customer%5BuxAddress%5D=&direct_customer%5BuxResidentialStatus%5D=
我在警报中打印的返回值

actionsign_upcontrollersitedataauthenticity_token=oRKIDOlPRqfnRehedcRRD7WXt6%2FQ0zLeQqwIahJZJfE%3D&direct_customer%5BuxName%5D=&direct_customer%5BuxEmail%5D=&direct_customer%5BuxResidentialPhone%5D=&direct_customer%5BuxMobilePhone%5D=&direct_customer%5BuxDateOfBirth%5D=&direct_customer%5BuxAddress%5D=&direct_customer%5BuxResidentialStatus%5D=

表单本身看起来如何。我没有使用Ruby on rails的经验——如果它以一种新的令人兴奋的方式构建表单的话——但是看起来似乎只有两个表单元素:Authentity\u token和customer——其中customer是一组项目。这是您发布的数据,但我对其进行了URL解码并添加了一些换行符:

authenticity_token=oRKIDOlPRqfnRehedcRRD7WXt6/Q0zLeQqwIahJZJfE=
&customer[uxName]=
&customer[uxEmail]=
&customer[uxResidentialPhone]=
&customer[uxMobilePhone]=
&customer[uxDateOfBirth]=
&customer[uxAddress]=
&customer[uxResidentialStatus]=
您可以做的是将表单序列化为数组,并在使用jQueryAjax请求发送表单之前对其进行清理。我曾经做过类似的事情,当时我必须序列化.net runat服务器表单元素:

var serializedData = $(form).serializeArray();
for( i=0; i < serializedData.length; i++)
{
    // For each item in the array I get the input-field name after the last $ character
    var name = serializedData[i].name;
    var value = serializedData[i].value;
    if( name.indexOf('$') != -1)
        name = name.substr( name.lastIndexOf('$')+1 );
    serializedData[i].name = name;
}
var ajaxPostData = $.param(serializedData);
我希望这能告诉你如何接收数据。也许是警告——胡猜!像这样

puts params[:data][:customer][:uxName]
params[:customer][:uxName]

它将其格式化为name1=value1&name2=value2格式…与浏览器中的querystring获取请求相同,这是您想要从中获取的内容。序列化,如果您发布了提交代码,则更容易查看您实际需要的内容。已更新。。我的问题是我无法访问任何发布的值。尝试过…没有运气。。。你建议的方式通常适用于post请求。。。在这种情况下,它返回一个零。。。我甚至尝试了params[:data][:customer][:uxName]…好的,您也可以发送完整的ajax请求,这样就可以到处查找错误了。我们不能确定是否有任何东西被发送到页面,我想:对不起,我的坏。。。终于轻松解决了…$。获取'url',$'form'。序列化而不是$。获取'url',{data:$'form'。序列化}成功了