2017-07-29 30 views
0

轨如何解析排列的阵列来创建记录

a = [1, 2, 3, 4, 5, 6] 

我创建

a.permutation(5).to_a 
=> [[1, 2, 3, 4, 5], [1, 2, 3, 4, 6],....... 

如何可以解析数组数组这样我就可以创建记录指定数组的索引Model.attribute。类似.....

for_each do 
Model.create(n1: 1, n2: 2, n3: 3, n4: 4, n5: 5) 
end 

谢谢!

回答

0

你可以尝试使用Array#map此:

arrays = a.permutation(5).to_a 

arrays.each do |array| 
    attribs = array.map.with_index { |item, i| ["n#{i + 1}", item] }.to_h 
    Model.create(attribs) 
end 
+0

它仍然不清楚如何分配索引值attribute_n1,N2,N3等能否请您澄清或结束的例子吗? – Francisco

+0

@Francisco - 代码也可以。 array.each的第一行将项目映射到散列。该键将是'n'后面是该项目的索引,并且该值将是该项目本身。 – 31piy

+0

非常干净的解决方案,谢谢! – Francisco