我有来自Order.all
[#<Order:0x00007f1d219f7028 id: 1, time: "01.00", amount: 21, created_at: Mon, 16 Apr 2018 17:44:41 UTC +00:00, updated_at: Mon, 16 Apr 2018 17:44:41 UTC +00:00>,
#<Order:0x00007f1d219f6ee8 id: 2, time: "02.00", amount: 23, created_at: Mon, 16 Apr 2018 17:44:41 UTC +00:00, updated_at: Mon, 16 Apr 2018 17:44:41 UTC +00:00>]
当我Order.all.first[:time]
时,我得到"01.00"
以便“有效”。
但是当我做的时候
a = []
Order.all.each do |e|
b = Array(e[:time])
b << e[:amount]
a << b
end
我再次获得上面的数组???
如何遍历数组以获取
[['01.00', 21], ['02.00', 23]]
答案 0 :(得分:3)
你不需要那个。试试这个
Order.all.pluck(:time, :amount)
更简洁,更昂贵的方式
Order.all.map { |order| [order.time, order.amount] }
更加冗长,可能是你正在尝试做的事情
result = []
Order.all.each do |order|
result << [order.time, order.amount]
end
答案 1 :(得分:0)
您的解决方案可能是正确的。您应该记住#each
返回枚举的集合。您案件中的订单集合。
您期望的结果是变量a