我有一個允許屬性爲null的模型,但是當讀取null屬性時,我想採取特殊的操作。特別是,我想拋出一些例外。也就是說,就像如何包裝所有ActiveRecord屬性訪問器
class MyModel < ActiveRecord::Base
def anAttr
read_attribute(:anAttr) or raise MyException(:anAttr)
end
end
這一切都很好,但這意味着我必須爲每個屬性手動編碼相同的自定義訪問器。
我想我可以重寫read_attribute,但是我的覆蓋的read_attribute從來沒有被調用過。
我真的要問爲什麼。你在這裏的用例是什麼?當然有更好的方法。 「例外情況是出於特殊情況。」無似乎並不罕見。 – 2009-05-28 04:33:50