Я заметил, что программным путем переход от родительского объекта к дочернему объекту, а затем обратно, что родительский объект, который я получаю, не совпадает с исходным.
Например:
Родительский класс: Car
Детский класс: Seat
A car
имеет много seats
puts(@car.to_s) => a memory address
puts(@car.seats.first.car.to_s) => totally different address
Я заметил это, потому что недавно я добавил новое строковое поле в Car через миграцию, и, пытаясь прочитать его, перебирая отношения обратно с места, это поле всегда было нулевым! Однако, добавив поле в представление скаффолда и проверив базу данных, появятся новое поле и значения.
Это странно, потому что все старые поля доступны. Это только новый, которого нет. Для чего бы то ни было, второе-последнее поле также является строкой.
Что происходит под капотом? Что мне нужно сделать? Спасибо!