Obtenir « méthode non définie comprend? » Pour request.user_agent
-
19-09-2019 - |
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
?
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