2015-04-12 76 views
1

所以我传入散列作为单个参数到这个类,然后返回一个嵌套的数组。我没有问题将散列转换为数组,但是,我无法弄清楚如何让测试代码在下面工作。我需要像访问数组一样访问对象,同时还要调用对象上的实例方法。预先感谢你们,任何帮助将不胜感激。如何看待我使用类创建的对象,如数组

class Student 

    attr_accessor :scores, :first_name 

    def initialize(student_data) 
     @student_data = student_data 
     @first_name = student_data[:first_name] 
     @scores = student_data[:scores] 
     return @students = @student_data.to_a 
    end 

    def first_name 
    end 

    def scores 
    end 
end 

p students[0].first_name == "Alex" 
p students[0].scores.length == 5 

回答

0

你正在覆盖你的getter方法,里面什么都没有。

您正在更换:

def first_name 
    return first_name 
end 

有:

def first_name 
end 

我也将假设你正确申报学生阵列。类似的东西来:

students = [] 
students.push(Student.new({first_name: "Alex", scores: [89, 100, 93, 72, 95] })) 

然后尝试:

p students[0].first_name == "Alex" 
p students[0].scores.length == 5 
+1

真棒,这完美地工作。干杯! –

+0

很高兴听到。 :) –

相关问题