2013-05-13 78 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

相關問題