我正在使用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