Je veux vérifier si la clé "utilisateur" est présente ou non dans le hachage de session. Comment puis-je faire ceci?
Notez que je ne veux pas vérifier si la valeur de la clé est nulle ou non. Je veux juste vérifier si la clé "utilisateur" est présente.
ruby-on-rails
ruby
data-structures
associative-array
Mohit Jain
la source
la source
Bien
Hash#has_key?
que le travail soit fait, comme le note Matz ici , il a été déconseillé en faveur deHash#key?
.la source
Dans les dernières versions de Ruby, l'instance Hash a une
key?
méthode:Veillez à utiliser la clé de symbole ou une clé de chaîne en fonction de ce que vous avez dans votre hachage:
la source
Il est très tard mais de préférence des symboles doivent être utilisés comme clé:
Mais lorsque vous créez un hachage si vous passez une chaîne comme clé, il recherchera la chaîne dans les clés.
Mais lors de la création du hachage, vous passez le symbole comme clé, puis has_key? recherchera les clés en utilisant le symbole.
Si vous utilisez Rails, vous pouvez utiliser
Hash#with_indifferent_access
pour éviter cela; à la foishash[:my_key]
ethash["my_key"]
pointera vers le même recordla source
Hash#with_indifferent_access
pour éviter cela; les deux:my_key
et"my_key"
pointeront vers le même recordVous pouvez toujours utiliser
Hash#key?
pour vérifier si la clé est présente dans un hachage ou non.Sinon, il vous reviendra
false
la source
Une autre façon est ici
la source
Dans Rails 5, la clé has_key? vérifie si la clé existe dans le hachage. La syntaxe pour l'utiliser est:
la source