9

我有一个 ruby​​ 类 Feedbin,它以前是一个模块的名称。当我尝试调用类中的任何方法时,会抛出 TypeError:`':Feedbin 不是类(TypeError)

例如,当我更改类的名称但附加一个 s 时,事情似乎按预期工作。

同一程序过去也有一个名为 Feedbin 的模块,但该模块不再存在。

老的:

module Feedbin
  class Api
  end
end

新的:

class Feedbin
end

如何摆脱“Feedbin 不是类”类型错误?这是什么原因造成的?

4

2 回答 2

14

非类模块不能更改为类。一旦定义了(非类)模块,就不能将其更改为类。你可能有:

class Feedbin
...

在你拥有的地方之前的某个地方

module Feedbin
...

将其更改classmodule,或使用其他名称而不是Feedbin其中之一。

或者,某些方法是否会出现错误消息?某些方法只能在类上定义。例如,如果您调用Feedbin.new,或调用initializeon 的东西Feedbin,并更改Feedbin为非类模块,则将导致错误。在这种情况下,为非类模块使用不同的名称。

于 2013-07-16T06:38:48.600 回答
0

通过网络服务器运行时遇到了同样的问题。

解决方案是重新启动服务器。

于 2018-01-08T12:34:04.713 回答