类名称的Ruby未初始化常量NameError

时间:2013-05-13 02:04:48

标签: ruby

我想从父类继承一个子类。

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

class Transportation
#codes
end

class Plane < Transportation
#codes
end

class Boat < Transportation
#codes
end

当我运行此代码时,我收到了Boat的错误,但是当我只创建了Plane时没有问题:

uninitialized constant Transportation (NameError)

任何人都可以帮我解决这个问题吗?

由于

1 个答案:

答案 0 :(得分:35)

除非Transportation的定义在另一个文件中,否则此代码没有理由失败。

如果是这种情况,并且这些文件位于不同的文件中,请不要忘记在另一个文件之前要求Transportation类的文件使用该文件。

正如您所提到的,有三种不同的文件。

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

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

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