2013-05-18 36 views
0

我在紅寶石下面的散列(@myhash):如何從Ruby中的散列中獲取值?

[ 
    { 
    "id"  => "123456789", 
    "name"  =>"Random name", 
    "list_type" =>"random type of list" 
    } 
] 

如何採取id的值進行哈希? (基本上我的結果應該是:123456789)

  • 當我嘗試做@myhash[:id]我得到以下錯誤「無法轉換成符號整數」
  • 當我嘗試做@myhash['id']我得到以下錯誤「可以」牛逼轉換成字符串整數」

我已經嘗試添加.to_i.to_s等,但沒有什麼幫助。

+2

請直接說出您的術語。你有一個紅寶石哈希,而不是一個軌道哈希。 Ruby是一種語言。 Rails是用Ruby編寫的庫/框架。這就像說「我在jQuery中編程」。不,你用Javascript編程,你*使用* jQuery。 –

+2

據我所知,由於您是新手,因此您可能都看起來一樣。但請,學會區分這兩者。 –

回答

9

你在那裏沒有散列。它是一個哈希數組(確切地說,是一個哈希數組,確切地說)。

首先,您必須解決數組中的正確元素(第一個元素),然後通過鍵來解決其值。

@myhash[0]['id'] # => '123456789' 
# or 
@myhash.first['id'] # => '123456789' 

我得到以下錯誤「無法轉換成符號整數」

你以爲你用哈希工作,但在現實中,它的陣列。數組不接受字符串或符號鍵。他們想要索引的整數。因此錯誤。

+0

downvote?這篇文章如何改進? –

+0

它的工作原理!感謝您的快速回復。 – deyan

+0

這是我的榮幸:) –

2

紅寶石Hash看起來像{},而[]Array。你的對象是第一個也是唯一的項目是散列的數組。要訪問它使用以下內容:

@myhash.first['id'] # 123456789'