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

Vic*_*ong 22 ruby

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

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

class Transportation
#codes
end

class Plane < Transportation
#codes
end

class Boat < Transportation
#codes
end
Run Code Online (Sandbox Code Playgroud)

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

uninitialized constant Transportation (NameError)
Run Code Online (Sandbox Code Playgroud)

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

谢谢

vgo*_*off 36

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

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

如您所述,有三个不同的文件.

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

require 'transportation'
require 'boat'
require 'plane'
Run Code Online (Sandbox Code Playgroud)

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

  • 那么,这将是在问题描述中显示的一个很好的论据.:)在每个文件中,您可以要求运输,否则您将必须保证这些文件的加载/要求顺序.我会更新我的答案. (2认同)
  • @LingchenXiong如果这回答了问题,你应该把它标记为已接受的答案.:) (2认同)