变量引用如何工作?

时间:2012-01-29 15:50:00

标签: ruby variables

这是我的代码,没什么特别的:

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

我希望server1中存储的引用本身而不是引用的属性始终保持不变,但它会发生变化:

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

这怎么可能?

1 个答案:

答案 0 :(得分:0)

好的,现在我认为这是rspec,factory_girl或mongoid中的一个错误。当我按如下方式更改代码时,它可以工作。

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

我仍然感到困惑的是什么是真正的原因。我将尝试制作一个简单的项目来重现问题并将问题发布到所涉及的所有三个项目......