2014-06-06 36 views
1

是否有任何方式使用6 number_field_tag发送一个二维数组参数类似下面在轨道上

{ 'bar' => { 'foo' => [[10, 100], [20, 200], [30, 300]] } } 

发送嵌套数组参数红宝石?

我想:

<%= number_field_tag "bar[foo][][]" %> 

但它没有工作

'bar' => { 'foo' => nil }

回答

1

关闭我的头顶,我不能想办法从建立一个二维数组6盒,但你可以做的是建立2个一维数组,然后将它们组合在你访问的任何页面的另一端。例如:

<%= number_field_tag "bar[foo][]" %> 
<%= number_field_tag "bar[foo][]" %> 
<%= number_field_tag "bar[foo][]" %> 
<%= number_field_tag "bar[foo2][]" %> 
<%= number_field_tag "bar[foo2][]" %> 
<%= number_field_tag "bar[foo2][]" %> 

构建一个参数列表如下所示:"bar"=>{"foo"=>["10", "10", "10"], "foo2"=>["9", "9", "9"]}

然后在接收端是相结合的一个简单的事情两个具有:

array = params[:bar][:foo].zip(params[:bar][:foo2]) 

产生以下数组:

[["10", "9"], ["10", "9"], ["10", "9"]] 

据我所知,没有办法设置在params哈希中添加二维数组,但我可能是错的。希望这可以处理你需要的:)

+2

是的我猜这是唯一的,因为rails似乎不支持多维数组在查询字符串:(谢谢!ref:http://stackoverflow.com/a/ 1446551分之14898800 –