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