Я думаю, что эти проверки обычно могут быть устранены с небольшим количеством мысли.Это дает преимущество, заключающееся в том, что ваш код представления будет более чистым, и, что более важно, не допускает попадания логики в слой представления, что является наилучшей практикой.Некоторые движки шаблонов не допускают никакой логики в представлении.
Существует как минимум пара сценариев.Допустим, у вас есть действие show
, которое зависит от переменной экземпляра.Я бы сказал, что если запись не найдена, контроллер не должен отображать HTML, путем перенаправления или чего-то еще.Если у вас есть цикл в представлении для массива, используйте @array.each do |a| end
, чтобы он не оценивал, является ли массив пустым.Если вы действительно хотите приложение по умолчанию в представлении, попробуйте загрузить его из файла конфигурации, например, @page_title || #{@APP_CONFIG['page_title']}
(см. Railscasts # 85 ).Помните, что вы можете изменить эти строки позже, например, переводя пользовательский интерфейс.
Это пара сценариев, в которых можно избежать проверки присутствия и использования try
.Я постараюсь избежать их, если это возможно.Если вы не можете избежать их, я бы поместил условные проверки в помощник вида и добавил бы вспомогательный тестовый модуль для проверки (и документирования) обоих путей кода.