0
@hac = HacCfgGroup.find(1897)
b = @hac
>> @hac.status
=> 2
>> @hac.status = 4
=> 4
>> b.status
=> 4
HacCfgGroup是一个具有许多属性的对象。 如何让b保持原来的价值?花了这么长时间仍然不知道如何保持一个对象没有改变。参考对象并在ruby中保留其原始值
@hac = HacCfgGroup.find(1897)
b = @hac
>> @hac.status
=> 2
>> @hac.status = 4
=> 4
>> b.status
=> 4
HacCfgGroup是一个具有许多属性的对象。 如何让b保持原来的价值?花了这么长时间仍然不知道如何保持一个对象没有改变。参考对象并在ruby中保留其原始值
http://lukaszwrobel.pl/blog/copy-object-in-ruby
有一些解释相关。 更确切地说克隆是答案
b
和@hac
指向相同的对象。尝试b = @hac.dup
创建一个重复的对象。
似乎不工作?我仍然可以通过@hac修改b,尽管他们是dup –
克隆将工作 –
请参阅'clone'和'dup'的区别:http://stackoverflow.com/questions/10183370/whats-the-difference-间RUBYS-DUP和克隆的方法。 –