request.user_agentは、「未定義のメソッドが `含める?」」の取得
-
19-09-2019 - |
質問
私はこのコード行を持っています
if request.user_agent.include?("iPhone") then
しかし、私は時々、このエラーを取得しています:
"undefined method `include?' for nil:NilClass"
エラーのログをチェックすると、、エラーを取得しているユーザーのための「HTTP_USER_AGENT
は」ありません。
HTTP_USER_AGENT
がない場合、それはエラーになりませんので、どのように私はその行を修正できますか?
解決
あなたはまた、オブジェクト#トライを使用することができます2.3.xx Railsのために
request.user_agent.try(:include?, 'iphone')
詳細はこちらのを確認します。
他のヒント
nilのためにそれを確認するか、例外を自分で救出。
NSDは正しいです。
また、ショートカットとしてtry
を使用することができます:
request.user_agent.try(:include?, "iPhone")
その受信機がnilのとき try
はエラーではないだろう、あなたはこのように、それらを一緒に連鎖することができます:
foo.try(:bar).try(:baz)
所属していません StackOverflow