Копирование объекта класса - PullRequest
0 голосов
/ 30 ноября 2010

У меня есть экземпляр объекта с именами слоев который является массивом объектов Layer.

Я пытаюсь сделать следующее и получаю сообщение об ошибке, говорящее о том, что я пытаюсь создать метод класса:

@best_copy = Marshal.load(Marshal.dump(@layers))

TypeError: no marshal_dump is defined for class Method

Как мне сделать так, чтобы он не пытался сохранить attr_accessor, но фактический объект?

1 Ответ

1 голос
/ 30 ноября 2010

Похоже, что один или несколько ваших слоев имеет переменную экземпляра, которая является методом. Это звучит правильно? Маршал отправляет объект marshal_dump для получения данных для маршалинга, и в свою очередь атрибуты объекта также получают marshal_dump для получения своих данных. Методы нельзя маршалировать, поэтому, когда процесс попадает в эту часть объекта, он зацикливается на попытке маршалинга вашего метода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...