模块中的Eval,但该类不是模块的一部分

时间:2013-02-09 19:08:13

标签: ruby module eval

我有一个模块Database。在此模块中,eval("MyClass")返回Database::MyClass is inexistent。但我希望它在Database模块之外进行评估。谁知道如何做到这一点?

2 个答案:

答案 0 :(得分:2)

您应该尝试明确指定全局范围:

eval('::MyClass')

答案 1 :(得分:1)

如果您尝试按字符串中包含的名称访问类,则使用Kernel.const_get可能是更好的选择。有关详细信息,请参阅此堆栈溢出帖子:Get a class by name in Ruby?