2015-10-15 3 views
1

Здравствуйте я пытался получить доступ к лексемам значения следующего хэша, не напрасноне удается получить доступ к определенному значению хеша - Rails

email.to[{:token=>"example", :host=>"HOSTNAME here", :email=>"example email", :full=>"[email protected]", :name=>nil}] 

это не email.to[:token] дать мне значение лексемы?

когда я делаю, что я получаю эту

TypeError (no implicit conversion of Symbol into Integer):

, если не то, что это правильный способ сделать это. Есть ли смысл делать цикл, когда мне нужно только одно значение?

+1

'email.to' фактически возвращает массив, содержащий один хеш. Попробуйте 'email.to.first [: токен]' – MrYoshiji

+0

@MrYoshiji это сработало спасибо! но почему я должен положить '.first' ?? –

ответ

1

email.to метод возвращает массив, содержащий Hash

[{:a=>"a", :b=>"b"}] 

поэтому вы должны указать индекс элемента в этом массиве первый

email.to[0][:a] 

или

email.to.first[:a] 

Чтобы получить доступ к Хэш без индекса, email.to должен возвращать хеш, а не тип массива. Так что это должно быть что-то понравилось

def to 
    {:a=>"a", :b=>"b"} 
end 
Смежные вопросы