문제

이 코드 라인이 있습니다.

if request.user_agent.include?("iPhone") then 

하지만 때때로이 오류가 발생합니다.

"undefined method `include?' for nil:NilClass"

오류의 로그를 확인할 때 "HTTP_USER_AGENT"오류가 발생하는 사용자의 경우.

그래서 어떻게 해당 줄을 수정할 수 있으므로 HTTP_USER_AGENT?

도움이 되었습니까?

해결책

Rails 2.3.xx의 경우 객체#시도를 사용할 수도 있습니다.

request.user_agent.try(:include?, 'iphone')

확인하다 여기 더 많은 정보를 위해서.

다른 팁

nil을 확인하거나 예외를 직접 구출하십시오.

NSD가 옳습니다.

당신은 또한 사용할 수 있습니다 try 바로 가기 :

request.user_agent.try(:include?, "iPhone")

try 수신기가 NIL 일 때 오류가 발생하지 않으므로 다음과 같이 함께 체인 할 수 있습니다.

foo.try(:bar).try(:baz)
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top