Quiero comprobar si la clave "usuario" está presente o no en el hash de la sesión. ¿Cómo puedo hacer esto?
Tenga en cuenta que no quiero verificar si el valor de la clave es nulo o no. Solo quiero verificar si la clave "usuario" está presente.
ruby-on-rails
ruby
data-structures
associative-array
Mohit Jain
fuente
fuente
Mientras
Hash#has_key?
hace el trabajo, como Matz señala aquí , ha quedado en desuso a favorHash#key?
.fuente
En las últimas versiones de Ruby, la instancia de Hash tiene un
key?
método:Asegúrese de usar la tecla de símbolo o una tecla de cadena dependiendo de lo que tenga en su hash:
fuente
Es muy tarde, pero preferiblemente los símbolos deben usarse como clave:
Pero al crear hash si pasa una cadena como clave, entonces buscará la cadena en las claves.
Pero cuando creas hash, pasas el símbolo como clave y luego has_key? buscará las teclas usando el símbolo.
Si está utilizando Rails, puede usar
Hash#with_indifferent_access
para evitar esto; amboshash[:my_key]
yhash["my_key"]
apuntarán al mismo registrofuente
Hash#with_indifferent_access
para evitar esto; ambos:my_key
y"my_key"
señalarán el mismo récordSiempre puedes usar
Hash#key?
para verificar si la clave está presente en un hash o no.Si no, te devolverá
false
fuente
Otra forma es aquí
fuente
En Rails 5, ¿has_key? El método verifica si la clave existe en el hash. La sintaxis para usarlo es:
fuente