2017-05-08 29 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