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
4

1 回答 1

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
于 2015-04-12T18:48:29.567 回答