繁体   English   中英

Ruby-添加到多维数组

[英]Ruby - Adding on to a Multidimensional Array

我想遍历一个过程,每次都将一个对象添加到我的数据库中,但是如果添加不正确,我想将错误收集在多维数组中。 一个阵列将保留发生错误的批次,第二个阵列将显示错误消息。

这里是我的报关表:

errors = [[],[]]

因此,我希望数组的格式如下:

[[lot_count, "#{attribute}: #{error_message}" ]]

循环后应如下所示:

[[1, "Name: Can not be blank" ],[1, "Description: Can not be blank" ],[2, "Name: Can not be blank" ]]

我的问题是它不会将其添加到数组中。 我不确定多维数组的语法是否不同。

这没有给我任何东西

errors.push([[lot_count, "#{attribute}: #{error_message}" ]])

这也没有给我任何好处

errors += [[lot_count, "#{attribute}: #{error_message}" ]]

似乎在推送时嵌套的数组太深:

errors.push([lot_count, "Foo:Bar"])
# => [[], [], [1, "Foo:Bar"]]

您可以从一个空数组开始...

errors = []

...然后建立单个错误数组...

e = [lot_count, "#{attribute}: #{error_message}" ]

...并将其推入错误数组的末尾。

errors << e
# or errors.push(e)

这将给您您的最终结果

[[1, "Name: Can not be blank" ],[1, "Description: Can not be blank" ],[2, "Name: Can not be blank" ]]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM