Rails: вернуть пустой класс - PullRequest
0 голосов
/ 10 ноября 2011

У меня есть Персона, у которой есть много Домов через Адреса.И один из этих адрионов Человека является «постоянным» (это место, где человек живет).Итак, в модели адреса у меня есть следующее:

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

Так что, на мой взгляд, я могу сделать:

@person.address.permanent.house.id

Но, когда у Person нет постоянного адреса, я (конечно же)) get:

undefined method `house' for nil:NilClass

Как мне изменить «постоянный» метод, чтобы он работал «прозрачно» даже для людей без постоянного адреса?Так будет например.вернуть пустой адрес класса или что-то.

1 Ответ

0 голосов
/ 10 ноября 2011

Закон Деметры! Или, по крайней мере, строго сформулированное предложение.

В частности, в таких случаях я добавлю метод Person, такой как constant_address, который инкапсулирует логику для проверки пустоты, и выполню любую специальную обработку, необходимую.

Пустой адрес в этом случае не поможет, так как вы копаете («Demetering») в дом, так что вам нужно решить, что делать: добавить дом, выполнить условную проверку и т. д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...