在rails数组上循环遍历ruby的简单方法

时间:2012-05-31 10:16:03

标签: ruby-on-rails ruby

有人能指出我在循环数组并提取所需值的正确方向。这让我有理解它的问题:

array = [{"response_message"=>nil, "response_client_message"=>nil, "response_customer_message"=>nil, "closed"=>true, "updated_at"=>2012-05-30 13:20:49 UTC, "created_at"=>2012-05-30 13:20:29 UTC, "token"=>"2fda85eab962fa6e27850605f2f948ca", "price"=>"$24.00", "amount"=>#<BigDecimal:7fa3f4485428,'0.24E2',9(18)>, "currency_code"=>"USD", "metadata"=>"{\"xxx\": 5, \"xxx\": 250, \"xxx\": true, \"support\": { \"email\": true, \"phone\": false } }", "line_items"=>[{"amount"=>#<BigDecimal:7fa3f4482fe8,'0.24E2',9(18)>, "notes"=>nil, "currency_code"=>"USD", "description"=>"1 day", "price"=>"$24.00", "feature_level"=>"{\"hotspots\": 5, \"vouchers\": 250, \"customizable_logins\": true, \"support\": { \"email\": true, \"phone\": false } }", "metadata"=>"{\"hotspots\": 5, \"vouchers\": 250, \"customizable_logins\": true, \"support\": { \"email\": true, \"phone\": false } }"}]}]

每天都会生成其中一个,我需要循环并呈现一些值。我试过这个:

array.select{|elem| elem[:updated_at]}

但那给了我一个[]。

如何循环并提取值? 我还需要了解如何获取line_items数组。

由于

3 个答案:

答案 0 :(得分:2)

array.select{|elem| elem["updated_at"]}

传递字符串而不是符号

答案 1 :(得分:1)

您所追求的并不完全清楚,但如果您想从该数组中提取值,请尝试map

array.map { |elem| elem["updated_at"] }

这将返回所有“updated_at”值的列表。

答案 2 :(得分:0)

如果要循环遍历数组并收集updated_at值,则应使用collect / map方法。 在您的示例中,您引用的是elem [:updated_at],它与elem [“updated_at”]

不同
array.collect{|elem| elem["updated_at"]}