Rails before_save回调

时间:2014-08-10 19:30:20

标签: ruby-on-rails ruby

在模型中的 before_save回调中:

self.field2 = self.field1
self.field2['word'] = 'something'

我希望保存后field1和field2不相同,但它们是 - field1变得与field2相同。

你知道为什么吗?


Anwser

self.field2 = self.field1.clone

1 个答案:

答案 0 :(得分:0)

首先,您将self.field1分配给self.field2。他们现在指向同一个对象。然后用

self.field2['word'] = 'something' 

您可以修改它们指向的对象。

如果您想将field1复制到field2中,请尝试使用self.field2 = self.field1.clone之类的内容。