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?

Foi útil?

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
scroll top