我正在使用Net :: LDAP的搜索,返回的条目是这样的。如何检查密钥是否存在于Ruby哈希中?
#<Net::LDAP::Entry:0x7f47a6491c00
@myhash=
{:loginshell=>["/bin/bash"],
:cn=>["M... R..."],
:homedirectory=>["/mnt/home/m..."],
:uid=>["m..."],
:userpassword=>["{CRYPT}$1$3zR/C...$R1"],
...
}>
我试图做到以下,但失败。
(1)
e = entry.to_hash
e.has_key? "uid"
(2)
entry.has_key? "uid"
第一误差说 “to_hash” 未定义,第二个 “对象的has_key” 未定义。然后,我真的不知道该怎么做,基本上我想找出是否存在“uid”,如果有,就获得其相应的值。
非常感谢你的小费。
BTW,只响应“entry.uid”,但如果搜索键被以字符串形式提供,该怎么做?例如,
def get_value(key)
if entry has key
return key's value
end
end
如果您拥有的只是一个字符串,您也可以''uid“.to_sym' –
”has_key“未定义,但”to_sym“有帮助。谢谢。 – user180574
'has_key?' - 知道问号 - 是'Hash'类的任何实例的一种方法。除非你使用与Hash实例不同的东西,否则它不能被定义。 – scaryguy