2009-11-10 3 views
0

Я получил эту строку кода:Получение "неопределенный метод` включают "?" Для request.user_agent

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

Но я иногда получаю эту ошибку:

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

При проверке регистрируется ошибка, для пользователя, который получает ошибку, нет «HTTP_USER_AGENT».

Так как я могу исправить эту строку, чтобы она не выдавала ошибку, если нет HTTP_USER_AGENT?

ответ

2

Для Rails 2.3.xx вы также можете использовать Object # попробовать

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

Проверить here для получения дополнительной информации.

0

Проверьте его на наличие нуля или самостоятельно устраните исключение.

0

NSD является правильным.

Вы также можете использовать try как кратчайшим:

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

try не будет ошибка, когда его приемник равна нулю, так что вы можете приковать их вместе, как это:

foo.try(:bar).try(:baz)