我有一个班级:
class Example
attr_reader :name
...
end
我后来决定将name
字段抽象为父类,以便可以重复使用。当我使用load 'filename.rb'
,
class Named
attr_reader :name
...
end
class Example < Name
...
end
我得到TypeError: superclass mismatch for class Example
因为我试图重新打开Example
类并更改其超类,这是不允许的。
为了解决这个问题,我一直在手动删除课程:
Object.send(:remove_const, :Example)
然后重新加载,但这很麻烦而烦人。是否有更简单的方法来强制重新加载而不会遇到此问题?
答案 0 :(得分:1)
没有。一旦定义了类,就无法更改它的父级。