如何在Rails中发布数组

时间:2012-02-05 14:30:34

标签: jquery html ruby-on-rails

我想将数据作为JSON发布到控制器

在javascript中,数据是一个数组,例如a = [1,2]

然后我发帖,说

$.post('user/data', {'data' : a})

在用户控制器中,我从params获取数据。

然而,当我检索params [:data]时,我得到了一个哈希:

{"0"=>1, "1"=>2}

而不是数组!

所以我必须手动将哈希转换为数组。

是否有将精确数组传递给控制器​​的方法?

2 个答案:

答案 0 :(得分:3)

我最近遇到了类似的问题。我的修复是发送json内容而不是默认的编码形式。

我用过

 $.ajax(
 {
   type: "POST", 
   url: url, 
   data: JSON.stringify(data), 
   dataType: "json", 
   contentType: 'application/json'
 }
 );

在您的示例中,可以这样做:

$.ajax(
       {
         type: "POST", 
         url: 'user/data', 
         data: JSON.stringify({'data' : a}), 
         dataType: "json", 
         contentType: 'application/json'
       }
     );

答案 1 :(得分:1)

你必须将JSON转换为字符串,但这可以工作:

/path/to/url?data[]=1&data[]=2&data[]=3

在控制器中,执行以下操作:

params[:data].each_with_index do |data, index| 
   do_something_with_data
end