ruby - 重新初始化 ruby​​ 类

标签 ruby metaprogramming

我该如何解决?

class Person
end

class Person < ActiveRecord::Base
end

TypeError: superclass mismatch for class Person.


我想重新初始化一个类。

最佳答案

一旦您在 ruby​​ 中创建了一个类,您就无法通过重新打开它来更改它的父类(super class)。 这就是您收到 TypeError: superclass mismatch for class Person. 错误的原因。

其他答案已经提供了替代方案,但需要注意的是,它们都没有修改现有的 Person 类,而是实际上创建了一个新类并将旧的 Person 常量重新分配给新类,在@user1158559 在他的回答中已经说明的限制。

关于ruby - 重新初始化 ruby​​ 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17508064/

相关文章:

python - 寻找有关如何将 PDF 转换为结构化格式的建议

json - 如何使用对象作为 json 的键序列化/反序列化 ruby​​ 哈希/结构

python - 让父类从类工厂返回一个子类

c++ - 编译时数学函数的 constexpr vs 模板?

ruby-on-rails - 在评论中提及用户用户名 (@mention) - Rails

ruby-on-rails - 编辑现有记录会创建重复的 Rails 5

javascript - Ruby on Rails - 创建时部分不渲染链接

通过函数的 Python 对象

c++ - 如何构建具有特定签名的函数概念?

c++ - 模板类中没有名为 X 的类模板