Arrays and hashes can be nested to model records with related details.

Nested Collections

nested_collections.rb
students = [
  { name: "Ada", scores: [8, 9] },
  { name: "Grace", scores: [10, 10] },
  { name: "Linus", scores: [7, 8] }
]
student_name = 

student = students.find do |entry|
  entry[:name] == student_name
end

if student
  total = student[:scores].sum
  average = total / student[:scores].length
  puts "student=#{student_name}"
  puts "total=#{total}"
  puts "average=#{average}"
else
  puts "student=#{student_name}"
  puts "status=missing"
end
students = [
  { name: "Ada", scores: [8, 9] },
  { name: "Grace", scores: [10, 10] },
  { name: "Linus", scores: [7, 8] }
]
student_name = 

student = students.find do |entry|
  entry[:name] == student_name
end

if student
  total = student[:scores].sum
  average = total / student[:scores].length
  puts "student=#{student_name}"
  puts "total=#{total}"
  puts "average=#{average}"
else
  puts "student=#{student_name}"
  puts "status=missing"
end
students = [
  { name: "Ada", scores: [8, 9] },
  { name: "Grace", scores: [10, 10] },
  { name: "Linus", scores: [7, 8] }
]
student_name = 

student = students.find do |entry|
  entry[:name] == student_name
end

if student
  total = student[:scores].sum
  average = total / student[:scores].length
  puts "student=#{student_name}"
  puts "total=#{total}"
  puts "average=#{average}"
else
  puts "student=#{student_name}"
  puts "status=missing"
end
nested collection A nested collection stores one collection inside another, such as hashes inside an array.