2013-06-11 3 views
1

У меня проблема, о которой я не помню, примерно полгода назад, когда я пробовал Вояж.Как сохранить графики, представляющие круговые ссылки в Voyage?

В моей схеме, Пользователь имеет instVar ссылки все центров он относится, и центр имеет instVar ссылающиеся все свои пользователей, поэтому, когда Voyage сериализатору пытается сериализовать пользователя (или центр), он переходит в бесконечный цикл, пытаясь найти конец ссылочной цепи и забивания изображения.

Помню, что я сохранял одну и ту же схему некоторое время назад без проблем, есть ли что-то новое, о чем я должен знать?

BTW, я использую версию #bleedingEdge, с Magritte3 и всеми.

Спасибо! :)

ответ

1

Я попытался воспроизвести вашу проблему, и она отлично работает в моем примере. То, что я сделал, это:

У вас есть Звезда, у которой есть планеты, которые на свое время указывают владельцу Star.

Star new 
    name: 'Sun'; 
    position: [email protected]; 
    addPlanet: (Planet new 
     name: 'Earth'; 
     orbit: 3; 
     yourself); 
    save 

Оба возможных комбинаций работает для меня:

Star class>>#isVoyageRoot 
    ^true 
Planet class>>#isVoyageRoot 
    ^true 

и:

Star class>>#isVoyageRoot 
    ^true 
Planet class>>#isVoyageRoot 
    ^false 

Так что ... Я не знаю, где твоя ошибка :(

+0

Ваш код также работает для меня, поэтому я думаю, что это о чем-то еще в моей модели ... по крайней мере теперь я знаю, что это моя вина! Спасибо большое :) –

Смежные вопросы