Rails:返回空类

时间:2011-11-10 10:53:08

标签: ruby-on-rails-3 model

我有人通过地址拥有房子。其中一个人的附加物是“永久性的”(它就是这个人所居住的地方)。所以,在地址模型中,我有以下内容:

def self.permanent
  first(:conditions => 'address_type = "permanent"')
end

所以在我看来,我可以做到:

@person.address.permanent.house.id

但是,当Person没有永久地址时,我(当然)得到:

undefined method `house' for nil:NilClass

我应该如何修改“永久”方法,以便即使对于没有永久地址的人来说,它也会“透明地”工作?所以它会例如。返回空地址类或其他东西。

1 个答案:

答案 0 :(得分:0)

得墨忒耳定律!或者至少是措辞强硬的建议。

特别是在这样的情况下,我会在Person上放一个方法,比如permanent_address,它封装了检查空虚的逻辑,并进行必要的特殊处理。

在这种情况下,空地址无济于事,因为你正在挖掘(“Demetering”)到房子里,所以你需要决定做什么:添加房子,做一个有条件的检查等等。