2013-03-11 3 views
0

Кто-то знает, почемунеопределенный метод `@» в рельсах

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

Получить следующую ошибку:

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

Благодарность

+0

Что происходит при инициализации хэша первого типа 'хэш = {}'? –

+7

Вы не показываете строку, в которой вы получаете сообщение об ошибке –

+2

Можете ли вы добавить трассировку стека, где происходит эта ошибка? Это не происходит при задании здесь, а где-то в другом месте. – tadman

ответ

2

Если вы хотите иметь 'мульти-х мерные' хэш вас необходимо правильно определить хеш следующим образом:

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

Тогда вы можете сделать:

a['city']['answer0'] = 'foo' 
Смежные вопросы