当一个方法只返回false时,如何调试ruby ldap



我的目标是将一个帐户转移到另一个OU。我的理解是,下面的代码应该完成这项工作。但是,它返回false。没有错误、警告或异常。我该如何调试为什么这不起作用?

secure_ldap.rename(
olddn: self.dn, 
newrdn: "CN=#{self.cn}", 
delete_attributes: true, 
new_superior: "#{ou}"
)

好吧,一种方法可能是在应用程序中添加pry和pry byebug。修改您的代码以包含binding.pry,然后运行您的应用程序:

Frame number: 0/0
From: ./test.rb @ line 1 :
=> 1: binding.pry
2: secure_ldap.rename(
3:   olddn: self.dn,
4:   newrdn: "CN=#{self.cn}",
5:   delete_attributes: true,
6:   new_superior: "#{ou}"
=> 

现在使用step逐行执行。它将允许您进入netldap内部的rename方法调用,例如检查该方法调用中的局部变量。

该错误不是ruby错误。当处理系统程序(如LDAP)的ruby标准lib接口时,请参阅它自己的文档源。

在你的情况下,你可能正在寻找https://ldap.com/ldap-dns-and-rdns/它解释了要使用的字符串以及哪些字符串需要转义。

最新更新