我正在使用ruby-aaws gem訪問Amazon AWS API,但沒有深入瞭解API或創業板的細節,我認爲我的問題更多的是一般性質。在Rails中訪問具有保留關鍵字作爲名稱的對象值
當我查詢API時,我將以「object array」結尾,我們將其稱爲item
,其中包含API響應。 我可以輕鬆訪問數組中的數據,例如puts item.item_attributes.artist.to_s
現在API返回標識符是Rails中保留字的屬性,例如, 格式或綁定。
所以這樣做:
puts item.item_attributes.format.to_s
將返回未找到
方法而
puts item.item_attributes.binding.to_s
會返回一些對象哈希像#<Binding:0xb70478e4>
。
我可以看到有那個名字值從產生YAML做
puts item.item_attributes.to_yaml
片段時顯示藝術家和結合:
--- !seq:Amazon::AWS::AWSArray
- !ruby/object:Amazon::AWS::AWSObject::ItemAttributes
__val__:
artist: !seq:Amazon::AWS::AWSArray
- !ruby/object:Amazon::AWS::AWSObject::Artist
__val__: Summerbirds in the Cellar
binding: !seq:Amazon::AWS::AWSArray
- !ruby/object:Amazon::AWS::AWSObject::Binding
__val__: Vinyl
這可能是一個非常詳細解釋一個非常簡單的解決方案,但我似乎無法找到解決方案。
編輯
終於找到了。我想這是因爲它是對象的數組,咄... puts item.item_attributes[0].binding.to_s
'item.binding'返回什麼? – Eric 2010-09-08 07:50:19
'Object#binding'返回該對象的範圍。這是紅寶石,而不是鐵軌。 – Reactormonk 2010-09-08 08:32:15
item.binding返回nil。問題是我不能使用item.item_attributes.binding作爲語法,因爲'binding'是一個保留字。雖然像「藝術家」這樣的詞不是,因此item.item_attributes.artist起作用。 – capsized 2010-09-08 11:19:23