2013-05-13 80 views
18

我想继承父类的子类。对于类名称的Ruby未初始化的常量名称错误

这是我的代码。 3个类是在3个独立的文件中创建的。

class Transportation 
#codes 
end 

class Plane < Transportation 
#codes 
end 

class Boat < Transportation 
#codes 
end 

当我运行这段代码,我得到了错误的船,但平面的问题,当我只有平面上创建:

uninitialized constant Transportation (NameError) 

谁能帮助我解决这个问题?

感谢

+0

导致错误的代码是什么? – jason328 2013-05-13 02:05:30

+0

如果可能的话显示你的代码 – sunny1304 2013-05-13 02:09:55

+0

我试过创建一个非常简单的类和相同的错误,所以它与代码无关。谢谢 – 2013-05-14 23:34:29

回答

30

没有原因的代码失败,除非Transportation的定义是在另一个文件中。

如果是这种情况,并且这些文件位于不同的文件中,请不要忘记在具有该用法的其他文件之前,需要具有Transportation类的文件。

正如你所说,有三个不同的文件。

您可以创建具有所需库的文件。也许它在你的bin/transport_simulator.rb文件中。

require 'transportation' 
require 'boat' 
require 'plane' 

现在,它们将按照正确的顺序被要求,并且具有子类Transport的类的文件将知道该类。

+0

是啊,我的权利,代码工作后,我需要的运输,但你知道为什么我不需要这样做,当我只Plane是否创建并继承了Transportation?谢谢。 – 2013-05-14 23:35:47

+0

运输和飞机是否在同一个文件? – vgoff 2013-05-14 23:36:43

+0

不,三个类别的三个单独的文件 – 2013-05-15 00:24:57

相关问题