我正在尝试实现功能,其中一旦设置属性,就无法在 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 进行验证时,我想获得无效对象?