Conseguir “método no definido` incluye? '”Para request.user_agent
-
19-09-2019 - |
Pregunta
Tengo esta línea de código:
if request.user_agent.include?("iPhone") then
Sin embargo, de vez en cuando estoy recibiendo este error:
"undefined method `include?' for nil:NilClass"
Al comprobar los registros en el error, no hay un "HTTP_USER_AGENT
" para el usuario que está recibiendo el error.
Entonces, ¿cómo puedo solucionar esa línea por lo que no lanza un error si no hay una HTTP_USER_AGENT
?
Solución
Para rieles 2.3.xx también se puede utilizar el objeto # try
request.user_agent.try(:include?, 'iphone')
aquí para obtener más información.
Otros consejos
Compruebe por nula o rescatar la excepción a sí mismo.
NSD es correcta.
También es posible usar try
como un atajo:
request.user_agent.try(:include?, "iPhone")
try
no de error cuando su receptor es nula, por lo que les puede encadenar juntos, como esto:
foo.try(:bar).try(:baz)
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow