2017-05-08 3 views
-2

Könnte jemand mir raten, was an diesem Skript falsch ist? Ich bin ein kompletter Anfänger mit Rubin, aber ich verstehe immer noch nicht, warum dieses Objekt in der Müllkippe leer ist. Danke für deinen Rat.Nil-Objekt in 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

Welches Objekt ist 'nil'? Bitte posten Sie Ihre Fehler/Log-Ausgabe. – Gerry

Antwort

3

Es scheint nicht ein Fehler zu sein, ich glaube, Sie sind ein # auf Ihrer Seite bekommen, wenn zu http://localhost:4567/basicInfo gehen, und das ist das erwartete Verhalten, da Sie befinden sich inspect auf Ihrem neuen Aufruf erstellt Person Objekt.

Ich gehe davon aus, dass Sie stattdessen get_basic_info angezeigt werden soll, wenn ja, Sie ein paar Änderungen müssen tun:

Zuerst entfernen puts von get_basic_info seit puts wird in der Konsole, nicht auf Ihrer Seite drucken:

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

Zweitens rufen Sie Ihre Methode vor Aufruf überprüfen, so dass Sie die Reihe von grundlegenden Informationen erhalten, bevor es Inspektion:

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

Vielen Dank! – XWizard

+0

@XWizard Gut zu helfen! Ich werde auch empfehlen, [this] (https://github.com/bbatsov/ruby-style-guide) durchzugehen, um sich mit dem Ruby-Programmierstil vertraut zu machen. – Gerry