Похоже, что вы сохраняете объект Direction (у которого нет собственного метода to_s) в direction.direction вместо строки. Попробуйте вывести direction.direction.inspect, чтобы лучше понять, что происходит. Также имейте в виду, что ruby-debug может быть отличным инструментом для отладки, распечатывая значения.
Полагаю, что, не глядя на код, вы могли бы иметь массив массивов объектов направления, таких как [[direction1],[direction2]]
, а не уплощенный массив, который вы ожидаете [direction1, direction2]
.
Обновление: Array # map возвращает другой массив - вам нужно создать строку, а не вернуть массив, поэтому рассмотрите возможность явного создания строки или вызова соединения для результирующего массив.