2013-03-11 64 views
0

有人不知道爲什麼未定義的方法'@」在軌

hash['City'] = {} 
hash['City']['answer0'] = 'foo' 

收到以下錯誤:

undefined method `[email protected]' for {"answer0"=>"foo"}:Hash 

感謝

+0

當你像'hash = {}'一樣初始化散列時會發生什麼? – 2013-03-11 17:15:49

+7

您沒有顯示出錯線 – 2013-03-11 17:16:21

+2

您可以添加堆棧跟蹤發生此錯誤的位置嗎?這不是在這裏的任務,而是在其他地方。 – tadman 2013-03-11 17:26:36

回答

2

如果你想擁有‘多維’散列你需要像這樣正確定義散列:

a = Hash.new { |hash, key| hash[key] = Hash.new(&hash.default_proc) } 

然後你可以這樣做:

a['city']['answer0'] = 'foo'