Я пытаюсь реализовать функциональность, при которой атрибут, однажды установленный, не может быть изменен в модели 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?