2017-05-08 1 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 개체를 만들었습니다. 아닌 페이지에서 콘솔로 인쇄됩니다

첫째, puts 이후 get_basic_info에서 puts을 제거 :

나는 당신이 그렇게, 당신은 변화의 몇해야 할 경우, 대신 get_basic_info을 표시한다고 가정

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/bbsosov/ruby-style-guide) 가이드를 통해 Ruby 프로그래밍 스타일에 익숙해지는 것이 좋습니다. – Gerry