我有一个ruby类Feedbin,它以前是模块的名称。当我尝试调用该类中的任何方法时,将引发TypeError:`':Feedbin不是一个类(TypeError)
当我更改类的名称,但添加一个s时,事情似乎按预期工作。
该程序以前也有一个名为Feedbin的模块,但是该模块不再存在。
老的:
module Feedbin
class Api
end
end
新的:
class Feedbin
end
如何摆脱“Feedbin不是类”类型错误?是什么原因造成的?
最佳答案
非类模块不能更改为类。一旦定义了(非类)模块,就不能将其更改为类。您可能有:
class Feedbin
...
在你拥有的地方之前的某个地方
module Feedbin
...
将该
class
更改为module
,或者使用其他名称代替Feedbin
之一。还是,某些方法会出现错误信息?某些方法只能在类上定义。例如,如果您调用
Feedbin.new
或在initialize
上调用Feedbin
的东西,并将Feedbin
更改为非类模块,则可能会导致错误。在这种情况下,请为非类模块使用其他名称。