Ruby on Rails中如何强制实现类的加载和卸载操作?

2026-04-11 18:111阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计257个文字,预计阅读时间需要2分钟。

Ruby on Rails中如何强制实现类的加载和卸载操作?

我正在从一个字符串加载一个类,使用 `Kernel.const_get('some_class_name').new`,这样做有效吗?正确的做法是什么?更重要的是,有没有方法可以卸载这个课程?

我尝试过使用 `Object.send(:remove_const, 'some_class_name')`,但似乎没有效果。

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

Kernel.const_get(some_class_name).new

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

更重要的是,有没有办法卸载课程?我试过了

Ruby on Rails中如何强制实现类的加载和卸载操作?

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分钟。

Ruby on Rails中如何强制实现类的加载和卸载操作?

我正在从一个字符串加载一个类,使用 `Kernel.const_get('some_class_name').new`,这样做有效吗?正确的做法是什么?更重要的是,有没有方法可以卸载这个课程?

我尝试过使用 `Object.send(:remove_const, 'some_class_name')`,但似乎没有效果。

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

Kernel.const_get(some_class_name).new

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

更重要的是,有没有办法卸载课程?我试过了

Ruby on Rails中如何强制实现类的加载和卸载操作?

Object.send(:remove_const, some_class_name)

但这与上课之前的情况不一样.

注意:与this有关.

既然您使用Rails标记了问题,那么您可以这样做

some_class_name.constantize

"User".constantize # => User

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

Object.send(:remove_const, :Foo)