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?

¿Fue útil?

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