3
我正试图实现功能,其中一旦设置属性就无法在ActiveRecord模型上进行更改。为此,我写了以下方法:在ActiveRecord中标记无效属性
def address
self[:address]
end
def address=(val)
if new_record?
self[:address] = val
else
errors.add(:address, "Cannot change address, once it is set")
return false # tried return nil here first, did not work
end
end
我在这里做错了什么吗?我想要的对象是无效的,一旦我尝试更改地址,但我没有得到任何错误,当我这样做obj.valid?
编辑:一旦设置它的值不会更改,但我想获得无效的对象当我通过obj.valid进行验证时?
咄!我应该想到这一点。谢谢! – rmk 2011-03-01 20:08:10
没问题。我为后代添加了一个代码示例,以防其他人来问相同的问题。 :-) – Benson 2011-03-01 20:26:43
谢谢谢谢谢谢!这是我为我的遗留项目寻找好几个小时。 – rendon 2015-01-31 20:43:48