Ruby:如何遍历一个可能是也可能不是数组的对象?

Shp*_*ord 2 ruby arrays loops

我有一个在一些用户提交的数据上运行的方法.

有时它会是一个数组,有时它不会.

提交示例:

<numbers>
    <number>12345</number>
</numbers>
Run Code Online (Sandbox Code Playgroud)

另一个例子:

<numbers>
    <number>12345</number>
    <number>09876</number>
</numbers>
Run Code Online (Sandbox Code Playgroud)

我一直在努力做到这each do一点,但当只有一个号码时,我得到一个TypeError (Symbol as array index)错误.

Sha*_*ird 10

我最近问了一个相似的问题.您可以使用轻松地将任何Ruby对象强制转换为数组Array.

p Array([1,2,3]) #-> [1,2,3]
p Array(123)     #-> [123]
Run Code Online (Sandbox Code Playgroud)

当然,阵列会响应each.因此,如果你强迫每个人进入一个数组,你的问题应该得到解决.