Erste „nicht definierte Methode` enthalten? '“Für request.user_agent
-
19-09-2019 - |
Frage
Ich habe diese Zeile Code bekommen:
if request.user_agent.include?("iPhone") then
Aber ich bin immer hin und wieder diese Fehlermeldung:
"undefined method `include?' for nil:NilClass"
Wenn Protokolle auf der Fehlerprüfung, gibt es kein „HTTP_USER_AGENT
“ für den Benutzer, der den Fehler zu bekommen.
Wie kann ich diese Zeile zu beheben, so dass es keinen Fehler auslösen, wenn es nicht ein HTTP_USER_AGENT
ist?
Lösung
Für Rails 2.3.xx Sie auch Objekt # try verwenden
request.user_agent.try(:include?, 'iphone')
Überprüfen Sie hier für weitere Informationen.
Andere Tipps
überprüfen Sie sie für null oder retten die Ausnahme selbst.
NSD richtig ist.
Sie auch try
als Abkürzung verwenden:
request.user_agent.try(:include?, "iPhone")
try
nicht Fehler, wenn ihre Empfänger null ist, so dass Sie sie zusammen verketten, wie folgt aus:
foo.try(:bar).try(:baz)
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow