Ruby on Rails中如何强制实现类的加载和卸载操作?
- 内容介绍
- 文章标签
- 相关推荐
本文共计257个文字,预计阅读时间需要2分钟。
我正在从一个字符串加载一个类,使用 `Kernel.const_get('some_class_name').new`,这样做有效吗?正确的做法是什么?更重要的是,有没有方法可以卸载这个课程?
我尝试过使用 `Object.send(:remove_const, 'some_class_name')`,但似乎没有效果。
我正在从这样的字符串加载一个类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)
本文共计257个文字,预计阅读时间需要2分钟。
我正在从一个字符串加载一个类,使用 `Kernel.const_get('some_class_name').new`,这样做有效吗?正确的做法是什么?更重要的是,有没有方法可以卸载这个课程?
我尝试过使用 `Object.send(:remove_const, 'some_class_name')`,但似乎没有效果。
我正在从这样的字符串加载一个类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)

