我有人通过地址拥有房子。其中一个人的附加物是“永久性的”(它就是这个人所居住的地方)。所以,在地址模型中,我有以下内容:
def self.permanent
first(:conditions => 'address_type = "permanent"')
end
所以在我看来,我可以做到:
@person.address.permanent.house.id
但是,当Person没有永久地址时,我(当然)得到:
undefined method `house' for nil:NilClass
我应该如何修改“永久”方法,以便即使对于没有永久地址的人来说,它也会“透明地”工作?所以它会例如。返回空地址类或其他东西。
答案 0 :(得分:0)
得墨忒耳定律!或者至少是措辞强硬的建议。
特别是在这样的情况下,我会在Person上放一个方法,比如permanent_address,它封装了检查空虚的逻辑,并进行必要的特殊处理。
在这种情况下,空地址无济于事,因为你正在挖掘(“Demetering”)到房子里,所以你需要决定做什么:添加房子,做一个有条件的检查等等。