2017-05-08 28 views
-2

任何人都可以告訴我這個腳本有什麼問題嗎?我是一個完全初學紅寶石的人,但我仍然不明白爲什麼這個東西在垃圾箱裏是空的。感謝您的建議。Ruby中沒有對象

require 'sinatra' 

class Person 
    def initialize(first_name, last_name, age, country) 
    @per_first_name = first_name 
    @per_last_name = last_name 
    @per_age = age 
    @per_country = country 
    end 

    def get_basic_info() 
    puts Array.[](@per_first_name, @per_last_name, @per_age, @per_country) 
    end 
end 

get '/basicInfo' do 
    xavier = Person.new('Tada', 'Bada', 25, 'CR') 
    xavier.inspect 
end 

enter image description here

+5

哪個對象是'nil'?請發佈您的錯誤/日誌輸出。 – Gerry

回答

3

它似乎沒有是一個錯誤,我認爲你是在你的頁面去http://localhost:4567/basicInfo時得到一個#,那是因爲你的新的呼籲inspect預期的行爲創建了Person對象。

我假設你想顯示get_basic_info相反,如果是這樣,你需要做一些改動:

首先,從get_basic_info刪除puts因爲puts將在控制檯打印,不是你的網頁上:

def get_basic_info() 
    Array.[](@per_first_name, @per_last_name, @per_age, @per_country) 
end 

其次,打電話給你的方法以前調用檢查,所以你檢查它之前獲得的基本信息的陣列:

get '/basicInfo' do 
    xavier = Person.new('Tada', 'Bada', 25, 'CR') 
    xavier.get_basic_info.inspect 
end 
+0

非常感謝! – XWizard

+0

@XWizard很高興幫助!我也會推薦閱讀[this](https://github.com/bbatsov/ruby-style-guide)指南,以便更熟悉Ruby編程風格。 – Gerry