Получение “неопределенный метод `include?'” для request.user_agent
-
19-09-2019 - |
Вопрос
У меня есть эта строка кода:
if request.user_agent.include?("iPhone") then
Но я иногда получаю эту ошибку:
"undefined method `include?' for nil:NilClass"
При проверке журналов об ошибке нет "HTTP_USER_AGENT
" для пользователя, который получает сообщение об ошибке.
Итак, как я могу исправить эту строку, чтобы она не выдавала ошибку, если нет HTTP_USER_AGENT
?
Решение
Для Rails 2.3.xx вы также можете использовать Object#try
request.user_agent.try(:include?, 'iphone')
Проверить здесь для получения дополнительной информации.
Другие советы
Проверьте его на нулевое значение или спасите исключение самостоятельно.
НРД прав.
Вы также могли бы использовать try
как короткий путь:
request.user_agent.try(:include?, "iPhone")
try
не будет выдавать ошибку, когда его приемник равен нулю, так что вы можете связать их вместе, вот так:
foo.try(:bar).try(:baz)
Не связан с StackOverflow