我正在从像这样的字符串中加载一个类
Kernel.const_get(some_class_name).new
哪个有效,但这样做的正确方法是什么?
更重要的是,有没有办法卸载一个类?我试过了
Object.send(:remove_const, some_class_name)
但这与加载课程之前的情况不同。
注意:与this相关。
答案 0 :(得分:7)
由于您使用Rails标记了问题,因此您可以执行
some_class_name.constantize
实施例
"User".constantize
# => User
remove_const
有效,但您需要从定义常量的对象空间调用它。另外,请记住将符号作为常量名称传递。
实施例
Object.send(:remove_const, :Foo)