我有一个模块Database
。在该模块中,eval("MyClass")
返回Database::MyClass is inexistent
。但我希望它在Database
模块之外进行评估。谁知道该怎么做?
您应该尝试显式指定全局范围,然后:
eval('::MyClass')
如果你试图通过字符串中包含的类名称来访问它,那么使用Kernel.const_get可能是一个更好的选择。有关更多信息,请参阅这篇堆栈溢出文章:用Ruby中的名称获取类?