我有一个模块Database
。在此模块中,eval("MyClass")
返回Database::MyClass is inexistent
。但我希望它在Database
模块之外进行评估。谁知道如何做到这一点?
答案 0 :(得分:2)
您应该尝试明确指定全局范围:
eval('::MyClass')
答案 1 :(得分:1)
如果您尝试按字符串中包含的名称访问类,则使用Kernel.const_get可能是更好的选择。有关详细信息,请参阅此堆栈溢出帖子:Get a class by name in Ruby?