Obtendo “Método indefinido` incluir? '”Para solicitação.User_AGENT
-
19-09-2019 - |
Pergunta
Eu tenho essa linha de código:
if request.user_agent.include?("iPhone") then
Mas ocasionalmente estou recebendo este erro:
"undefined method `include?' for nil:NilClass"
Ao verificar os registros do erro, não há um "HTTP_USER_AGENT
"Para o usuário que está recebendo o erro.
Então, como posso consertar essa linha para que ela não faça um erro se não houver um HTTP_USER_AGENT
?
Solução
Para Rails 2.3.xx, você também pode usar o objeto#tente
request.user_agent.try(:include?, 'iphone')
Verificar aqui para mais informações.
Outras dicas
Verifique se há NIL ou resgate a exceção.
NSD está certo.
Você também pode usar try
Como um atalho:
request.user_agent.try(:include?, "iPhone")
try
Não vai errar quando o receptor estiver nulo, então você pode encadeá -los, assim:
foo.try(:bar).try(:baz)
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow