Я хочу, чтобы иметь возможность инициализировать новый объект Car и передать ему объект Person в параметрах, чтобы его можно было сохранить в массиве @cars этого Person. В настоящее время, я беру этот подход:Как связать экземпляры из разных классов в Ruby
person = Person.new("Michael")
car = Car.new("Honda", "Accord")
person.add_car(car)
person.add_car(Car.new("Ford", "Taurus"))
person.add_car(Car.new("Toyota", "Prius"))
person.display
Однако, я хотел бы быть в состоянии создать новый экземпляр автомобиля и передать ему объект Person Я хочу это связанно с. Например:
person = Person.new("Michael")
Car.new("Honda", "Accord", person)
Car.new("Toyota", "Camry", person)
Car.new("Chevy", "Tahoe", person)
person.display
Возможно ли это?
class Person
attr_accessor :name
def initialize(name)
super
@name = name
@cars = []
end
def display
puts "#{@name} has #{@cars.length} cars"
puts "----------------------------"
@cars.each do |car|
puts "#{car.make} #{car.model}"
end
end
def add_car(car)
@cars.push(car)
end
end
class Car
attr_accessor :make, :model
def initialize(make, model)
@model = model
@make = make
end
def display
puts "#{@make} #{@model}"
end
end
Именно то, что я искал. Благодаря! – Abundnce10