我正在使用Net::LDAP进行搜索,返回的条目类似于这样。
#<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”,如果存在就获取它对应的值。非常感谢您的提示。
顺便说一句,它只响应于“entry.uid”,但是如果搜索关键字以字符串形式提供,该怎么办?例如,
def get_value(key)
if entry has key
return key's value
end
end
"uid".to_sym
。 - John Diblinghas_key?
(注意问号)是Hash
类的任何实例的方法。除非您将其用于与Hash
实例不同的内容,否则它不会被未定义。 - scaryguy.class
添加到任何对象即可知道它的类类型,非常简单。执行e.class
即可查看其类型。 - scaryguy