Мой опыт работы с типами в Ruby таков, что вместо того, чтобы думать о том, что что-то является , вы должны думать о том, что что-то делает . В этом отношении это очень jQuery, не спрашивайте, какой браузер использует пользователь, а может ли его браузер делать то, что нам нужно.
Я знаю, что это был не главный вопрос вашего вопроса, но это показалось подходящей аналогией, учитывая название и мой собственный опыт изучения Ruby и работы с типизацией утки.
Тебе ответят, что единственный раз, когда ты действительно хочешь определить новый объект, такой как цвет, - это если ты собираешься дать определение клиентам. В случае с автомобилем это может быть полностью допустимо, у многих автомобилей есть только определенные цвета, и у них есть действительно определенные цвета. Так что, действительно, цвет имеет множество машин, и автомобиль будет принадлежать этому цвету.
Именование всегда было немного странным для меня, я только что узнал, что принадлежат - это модель, которая имеет идентификационный номер. У этого есть свои причины, но легче запомнить этот факт, чем пытаться каждый раз распутывать логику. Это все, что вы действительно должны держать прямо, и у вас все будет хорошо. :)