Поэтому я создал хэш params, присвоил ему значения, пытаясь извлечь значение. - PullRequest
1 голос
/ 25 ноября 2011
person1 = Person.new
person1.first = "Tim"
person1.last = "Happy"

person2 = Person.new
person2.first = "Zack"
person2.last = "Sad"

person3 = Person.new
person3.first = "Al"
person3.last = "Angry"

params = {:father => person1, :mother => person2, :child => person3} #params hash
puts params[:father][:first]

Я пытаюсь заставить его напечатать только Тим.Что я тут не так делаю?

1 Ответ

3 голосов
/ 25 ноября 2011

Person представляется классом (не таким, как Hash), поэтому к нему нельзя получить доступ таким образом, если класс явно не определил метод доступа [] (как * 1005). * делает , например). То, что вы хотите:

puts params[:father].first

Это может быть запутанным из-за языка, такого как, например, JavaScript, где две нотации взаимозаменяемы.

...