3
我加载类从字符串这样强制类加载和卸载(ROR)
Kernel.const_get(some_class_name).new
它的工作原理,但什么是做这种正确的方法是什么?
更重要的是,有什么办法可以卸载一类吗?我已经尝试过
Object.send(:remove_const, some_class_name)
但是这与之前的班级加载时不一样。
注:与this有关。
我加载类从字符串这样强制类加载和卸载(ROR)
Kernel.const_get(some_class_name).new
它的工作原理,但什么是做这种正确的方法是什么?
更重要的是,有什么办法可以卸载一类吗?我已经尝试过
Object.send(:remove_const, some_class_name)
但是这与之前的班级加载时不一样。
注:与this有关。
既然您标记使用Rails的问题,那么你可以做
some_class_name.constantize
例
"User".constantize
# => User
remove_const
的作品,但是你需要从其中常量定义对象空间调用它。此外,请记住传递一个符号作为常量名称。
例
Object.send(:remove_const, :Foo)
谢谢!关于remove_const:回应基本上是红宝石期待'.rb'来定义我已经消除的常量。换句话说,它的工作,但没有重置系统之前,类加载。 –
那么如何在定义常量之前重置系统? –