Я хочу проверить, присутствует ли ключ пользователя в хэше сеанса. Как я могу это сделать?
Обратите внимание, что я не хочу проверять, является ли значение ключа нулевым или нет. Я просто хочу проверить, присутствует ли «пользовательский» ключ .
ruby-on-rails
ruby
data-structures
associative-array
Мохит Джайн
источник
источник
В то время как
Hash#has_key?
получает работу, а Мац отмечает здесь , он устарел в пользуHash#key?
.источник
В последних версиях Ruby экземпляр Hash имеет
key?
метод:Обязательно используйте символьный ключ или строковый ключ в зависимости от того, что у вас есть в хэше:
источник
Уже очень поздно, но желательно, чтобы в качестве ключа использовались символы:
Но при создании хэша, если вы передадите строку в качестве ключа, он будет искать строку в ключах.
Но при создании хеша вы передаете символ как ключ, затем has_key? будет искать ключи с помощью символа.
Если вы используете Rails, вы можете использовать,
Hash#with_indifferent_access
чтобы избежать этого; обаhash[:my_key]
иhash["my_key"]
будут указывать на одну и ту же записьисточник
Hash#with_indifferent_access
чтобы избежать этого; и то:my_key
и другое"my_key"
будет указывать на одну и ту же записьВы всегда можете использовать,
Hash#key?
чтобы проверить, присутствует ли ключ в хэше или нет.Если нет, он вернет вас
false
источник
Другой способ здесь
источник
В Rails 5 ключ has_key? Метод проверяет, существует ли ключ в хэше. Синтаксис, чтобы использовать это:
источник