Question

J'ai cette ligne de code:

if request.user_agent.include?("iPhone") then 

Mais je suis de temps en temps à obtenir cette erreur:

"undefined method `include?' for nil:NilClass"

Lors de la vérification des journaux sur l'erreur, il n'y a pas « HTTP_USER_AGENT » pour l'utilisateur qui devient l'erreur.

Alors, comment puis-je résoudre cette ligne de sorte qu'il ne jette pas une erreur s'il n'y a pas un HTTP_USER_AGENT?

Était-ce utile?

La solution

Pour Rails 2.3.xx, vous pouvez également utiliser l'objet # essayer

request.user_agent.try(:include?, 'iphone')

Vérifier pour plus d'informations.

Autres conseils

Vérifier pour nul ou sauver l'exception vous.

NSD est juste.

Vous pouvez également utiliser try comme raccourci:

request.user_agent.try(:include?, "iPhone")

try ne l'erreur lorsque son récepteur est nul, donc vous pouvez les enchaîner, comme ceci:

foo.try(:bar).try(:baz)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top