2010-09-07 60 views
0

問題我目前正在爲我的第一門課程的Ruby項目工作。作業的一部分是具有下面的主要類。我有一個單獨的文件,其他模塊和類都在單獨的文件中。現在我得到一個未初始化的常量Main :: Camping(NameError),我沒有得到。任何線索爲什麼?!由於

問候

class Main 

if __FILE__ == $0 
    $camping = Camping.new(32, 12) #creates a new camping  

    include Menus 
    $current_menu = main_menu 

    # loops through the menu 
    while (true) 
     puts $current_menu 
     choice = Menus.get_input 
     $current_menu.make_menu_choice(choice) 
    end 
end 

+0

'while(true)':-O – Swanand 2010-09-07 07:49:50

+0

我從來沒有在課堂上看到過「if __FILE__ == $ 0」。整個代碼看起來很奇怪:代碼中間包含全局變量,沒有中斷的無限循環... – tokland 2010-09-07 13:53:59

+0

@tokland:我確定你是對的。我只是Ruby的初學者。你會怎麼做?問候 – Tim 2010-09-07 20:42:24

回答

1

哪裏是定義Camping或 'Menu' 的文件?你需要 'require' 這些文件:

require 'camping' 
require 'menus' # etc 

class Main 
#.. 

瞭解更多關於要求here

+0

哦!我忘了,那是真的。現在它的工作,謝謝! (真),你認爲我們很奇怪嗎?你對此發表了評論。問候 – Tim 2010-09-07 08:11:24

+1

@Tim,consder構造「loop do ... end」作爲「while(true)... end」的替代方案 – 2010-09-07 17:58:20

+0

@Wayne:你的意思是這樣的話:loop do puts $ current_menu choice =菜單.get_valid_input($ current_menu.options) \t \t \t $ current_menu.make_menu_choice(選擇) \t \t結束 – Tim 2010-09-07 20:02:52