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?

War es hilfreich?

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