質問

私はこのコード行を持っています

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