Hashie :: Rash元素访问

时间:2014-08-29 10:40:17

标签: ruby-on-rails ruby gem

使用Hashie :: Rash的新手。我了解如何访问"结果"以下hashie的部分,但是如何访问" count" "结果"之前的元素在以下示例中:

hashie => #<Hashie::Rash count=20 page=1 results=[#<Hashie::Rash customer=#<Hashie::Rash addresses=[] custom_external_id="58749" emails=[#<Hashie::Rash email=#<Hashie::Rash created_at="2013-02-13T15:59:26-08:00" email="CENSORED" id=33622514 updated_at="2013-02-13T15:59:26-08:00" verified_at=nil>>] first_name="CENSORED" id=68712186 language=nil last_name="CENSORED" phones=[#<Hashie::Rash phone=#<Hashie::Rash created_at="2013-02-13T16:00:45-08:00" id=1301079 phone="CENSORED" updated_at="2013-02-13T16:00:45-08:00">>] twitters=[nil]>>, #<Hashie::Rash customer=#<Hashie::Rash addresses=[] custom_external_id="58749"  emails=[] first_name="CENSORED" id=71095620 language=nil last_name="CENSORED" phones=[] twitters=[nil]>>] total=2> 

2 个答案:

答案 0 :(得分:0)

不是特别雄辩,但在上面的例子中,

hashie.values[1]返回20

希望有一天能帮到别人。

答案 1 :(得分:0)

对于很多内容,

Hashie::Rash仍然像Hash#count仍然使用Hash#count,您可以看到结果为9。

hashie = Hashie::Rash.new({count:20, page: 1, results:["a","b","c"]})
#=> #<Hashie::Rash count=20 page=1 results=["a", "b", "c"]>
hashie.count #uses Hash#count
#=> 3

但由于Hashie::Rash的核心仍然是Hash(只是真正无差别的访问),它还维护了很多基于访问的方法,例如Hash#[]

hashie['count']
#=> 20
hashie[:count]
#=> 20
hashie['page'] == hashie.page
#=> true

您的回答也可以,因为Hash#values会返回Array,但这似乎是一个不必要的步骤,缺乏可读性和可管理性。