的Savon gem我使用的是给我回一个对象或数组哈希#,我也没有办法知道它会到SOAP响应回来。转换红宝石散列成阵列,而无需调用`to_a`
为方便起见,我希望将nil
响应转换为[]
,将单个响应转换为[obj]
,并将数组保留为数组。这可以很容易地与Kernel#Array
完成,即:
> Array nil
=> []
> Array 1
=> [1]
> Array [1,2,3]
=> [1, 2, 3]
然而,由于Kernel#Array
电话to_a
,它失败了Hash
which overrides to_a
:
> Array({a: 1})
=> [[:a, 1]]
> Array([{a: 1}, {b: 2}])
=> [{:a=>1}, {:b=>2}]
第2行以上,我想看到[{:a=>1}]
。
接受现在,除非有人能想出不需要的ActiveSupport同样优雅的解决方案。 – dukedave 2012-07-24 22:51:12