Nouveau sur Ruby et j'essaie de créer un tableau de hachages (ou est-ce que je l'ai à l'envers?)
def collection
hash = { "firstname" => "Mark", "lastname" => "Martin", "age" => "24", "gender" => "M" }
array = []
array.Push(hash)
@collection = array[0][:firstname]
end
@collection n'affiche pas le prénom de l'objet en position 0 ... Qu'est-ce que je fais mal?
Merci d'avance!
Vous utilisez un Symbol
comme index dans l'objet Hash
qui utilise des objets String
comme clés, alors faites simplement ceci:
@collection = array[0]["firstname"]
Je vous encourage à utiliser Symbol
s comme Hash
clés plutôt que String
s car Symbol
s sont mis en cache, et donc plus efficaces, donc ce serait une meilleure solution :
def collection
hash = { :firstname => "Mark", :lastname => "Martin", :age => 24, :gender => "M" }
array = []
array.Push(hash)
@collection = array[0][:firstname]
end
Vous avez défini les clés de votre hachage comme String
. Mais vous essayez de le référencer comme Symbol
. Cela ne fonctionnera pas de cette façon.
Essayer
@collection = array[0]["firstname"]
Tu peux le faire:
@collection = [{ "firstname" => "Mark", "lastname" => "Martin", "age" => "24", "gender" => "M" }]