有一个称为userCertificate; binary的常见LDAP属性。它实际上在属性名称中有一个分号。在ruby中,我将一个LDAP条目转换为一个名为'struct'的OpenStruct对象。对象变量名称中的分号
>> struct.class => OpenStruct
但当然,红宝石认为这是一个行尾字符。
?> struct.userCertificate;binary NameError: undefined local variable or method `binary' for main:Object from (irb):52 from :0
IRB知道,局部变量是存在的,因为它给了我struct.userCertificate;binary
从标签自动完成。调用struct.methods时,我也可以看到类变量。
>> struct.methods => ... "send", "methods", "userCertificate;binary=", "hash", ...
它绝对存在,如果我打印整个变量to_s(),我可以看到内容。但是如何访问局部变量,当它有一个分号?我有这方面的解决方法,但我认为这是一个有趣的问题发布。
这工作就像一个冠军。谢谢。 – squarism 2010-06-18 02:34:46