当我检测到attribute_1
已更改并即将更新时,我尝试更改attribute_2
值。
对象会更新,但设置的attribute_1
值不会持久,为什么?
before_update :check_attribute2_change
def check_attribute_2_change
if attribute_2_changed?
attribute_1 = nil
end
end
答案 0 :(得分:2)
试试这个:
before_update :check_attribute2_change
def check_attribute_2_change
self.attribute_1 = nil if attribute_2_changed?
end
答案 1 :(得分:0)
如果您在模特身上,请致电:
save!
您的代码将如下所示:
before_update :check_attribute2_change
def check_attribute_2_change
if attribute_2_changed?
attribute_1 = nil
save!
end
end
请注意" before_update"回调,在对象在数据库中保存(持久化)之前调用。在此阶段更改一个属性时,需要保存它。