Rails 3: Избежание вложенных ifs при тестировании вложенных параметров - PullRequest
0 голосов
/ 25 мая 2011

В rails, если я проверяю вложенный параметр и не присваивается: parent, он выдаст ошибку.Так, например,

   params[:page][:childpage][:grandchildpage].present?

throws «У вас есть нулевой объект, где вы его не ожидали», если нет: page или: childpage.Точно так же,

   demopage = @page.childpage.grandchildpage.present?

выдает что-то подобное.

Решение, которое не осмеливается показать его лицо, представляет собой целую кучу вложенных операторов if, что, очевидно, недостаточно хорошо.Итак, вопрос в том ... что является стандартным (элегантным) способом возврата false вместо выдачи ошибки, если какой-либо родительский элемент будет пустым?Метод спасения, или есть что-то лучше?

Полагаю, это довольно часто, просто интересно, каково стандартное решение.

Приветствия ...

1 Ответ

1 голос
/ 25 мая 2011

Для второго можно использовать и операторы.

demopage = @page &&
  @page.childpage &&
  @page.childpage.grandchildpage &&
  @page.childpage.grandchildpage.present?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...