我想检查“user”键是否存在于会话散列中。我该怎么做呢?

注意,我不想检查键的值是否为nil。我只是想检查“user”键是否存在。


当前回答

而散列# has_key ?就像Matz在这里指出的那样,它已经被弃用了,取而代之的是hash# key?

hash.key?(some_key)

其他回答

你总是可以使用哈希#键?来检查键是否存在于散列中。

如果不是,它将返回false

hash =  { one: 1, two:2 }

hash.key?(:one)
#=> true

hash.key?(:four)
#=> false
h = {}
if h.respond_to?(:key?) && h.key?('text') #with respond_to method check if it's hash
   puts h['text'] 
end

另一种方法是这里

hash = {one: 1, two: 2}

hash.member?(:one)
#=> true

hash.member?(:five)
#=> false

在Rails 5中,has_key?方法检查散列中是否存在键。使用它的语法是:

YourHash.has_key? :yourkey

哈希的钥匙吗?方法告诉您给定的键是否存在。

session.key?("user")