Dan*_*ark 3 ruby ruby-on-rails
我正在从这样的字符串加载一个类
Kernel.const_get(some_class_name).new
Run Code Online (Sandbox Code Playgroud)
哪个有效,但这样做的正确方法是什么?
更重要的是,有没有办法卸载课程?我试过了
Object.send(:remove_const, some_class_name)
Run Code Online (Sandbox Code Playgroud)
但这与上课之前的情况不一样.
注意:与此相关.
既然您使用Rails标记了问题,那么您可以这样做
some_class_name.constantize
Run Code Online (Sandbox Code Playgroud)
例
"User".constantize
# => User
Run Code Online (Sandbox Code Playgroud)
remove_const工作,但您需要从定义常量的对象空间调用它.另外,请记住将符号作为常量名称传递.
例
Object.send(:remove_const, :Foo)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
947 次 |
| 最近记录: |