获取request.user_agent的“未定义方法`include?'”

时间:2009-11-10 17:00:29

标签: ruby-on-rails include user-agent

我有这行代码:

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

但我偶尔会收到此错误:

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

检查错误的日志时,没有“HTTP_USER_AGENT”表示收到错误的用户。

那么如何修复该行,以便在没有HTTP_USER_AGENT的情况下不会引发错误?

3 个答案:

答案 0 :(得分:2)

对于Rails 2.3.xx,您也可以使用Object#try

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

查看here了解详情。

答案 1 :(得分:0)

检查它是否为零或自己解救异常。

答案 2 :(得分:0)

NSD是对的。

您还可以使用try作为捷径:

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

try在接收器为零时不会出错,因此您可以将它们链接在一起,如下所示:

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