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



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

您应该尝试显式指定全局范围,然后:

eval('::MyClass')

如果你试图通过字符串中包含的类名称来访问它,那么使用Kernel.const_get可能是一个更好的选择。有关更多信息,请参阅这篇堆栈溢出文章:用Ruby中的名称获取类?

相关内容

最新更新