我有一个允许属性为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