Quero verificar se a chave "usuário" está presente ou não no hash da sessão. Como posso fazer isso?
Observe que não quero verificar se o valor da chave é nulo ou não. Eu só quero verificar se a chave "usuário" está presente.
ruby-on-rails
ruby
data-structures
associative-array
Mohit Jain
fonte
fonte
Enquanto
Hash#has_key?
faz o trabalho, como Matz observa aqui , ele foi preterido em favor deHash#key?
.fonte
Nas versões mais recentes do Ruby, a instância do Hash tem um
key?
método:Certifique-se de usar a tecla de símbolo ou uma tecla de seqüência de caracteres, dependendo do que você possui no seu hash:
fonte
É muito tarde, mas de preferência os símbolos devem ser usados como chave:
Mas, ao criar hash, se você passar a string como chave, ele procurará a string nas chaves.
Mas ao criar o hash, você passa o símbolo como chave e has_key? procurará as teclas usando o símbolo.
Se você estiver usando o Rails, poderá
Hash#with_indifferent_access
evitar isso; amboshash[:my_key]
ehash["my_key"]
apontará para o mesmo registrofonte
Hash#with_indifferent_access
evitar isso; ambos:my_key
e"my_key"
irá apontar para o mesmo registroVocê sempre pode usar
Hash#key?
para verificar se a chave está presente em um hash ou não.Caso contrário, ele retornará
false
fonte
Outra maneira é aqui
fonte
No Rails 5, o has_key? O método verifica se a chave existe no hash. A sintaxe para usá-lo é:
fonte