Обычно проблема в другом. С ошибкой и поиском.
Это вызвано тем, что не приведение идентификатора в BSON :: ObjectId перед запросом.
Обычно вы должны это сделать
Cart.where(:_id => BSON::ObjectId('4dae5902e1607c232c000009')).first
Это наводит меня на мысль, что ваши идентификаторы хранятся в виде строк, а не BSON: ObjectId, и объясняет, почему не удается найти (он ищет BSON :: ObjectId, а не строку)
Может также объяснить, почему это только одна модель, поскольку она полностью зависит от того, как хранятся объекты.
Надеюсь, это поможет