2012-01-29 4 views
3

Это мой код, ничего особенного:Как работают ссылки на переменные?

server1 = @volume.pserver 
puts server1 
@volume.pserver = server2 
puts server1 

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

#<Pserver:0x00000005bd3b98> 
#<Pserver:0x0000000662b2a8> 

Как это возможно?

+0

Можете ли вы рассказать, как вы определяете методы 'pserver' и' pserver = 'объекта @volume? –

+0

Это ассоциация монгоидов. – gucki

+0

забыли свой комментарий, я удалил его. – three

ответ

0

Хорошо, теперь я предполагаю, что это ошибка в rspec, factory_girl или mongoid. Когда я меняю код следующим образом, он работает.

server1 = @volume.pserver.reload # no clue why reload is needed here 
puts server1 
@volume.pserver = server2 
puts server1 

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

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