2015-04-12 6 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

Вы переписываете свои методы получения без ничего внутри.

Вы заменяете:

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

Awesome, это работало отлично. Ура! –

+0

Приятно слышать. :) –

Смежные вопросы