力等级装卸(RoR)

时间:2011-08-24 16:21:11

标签: ruby-on-rails ruby

我正在从像这样的字符串中加载一个类

Kernel.const_get(some_class_name).new

哪个有效,但这样做的正确方法是什么?

更重要的是,有没有办法卸载一个类?我试过了

Object.send(:remove_const, some_class_name)

但这与加载课程之前的情况不同。

注意:与this相关。

1 个答案:

答案 0 :(得分:7)

由于您使用Rails标记了问题,因此您可以执行

some_class_name.constantize

实施例

"User".constantize
# => User

remove_const有效,但您需要从定义常量的对象空间调用它。另外,请记住将符号作为常量名称传递。

实施例

Object.send(:remove_const, :Foo)