0

我有这行代码:

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

但我偶尔会收到此错误:

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

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

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

4

3 回答 3

2

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

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

在这里查看更多信息。

于 2009-11-10T17:11:22.503 回答
0

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

于 2009-11-10T17:07:15.017 回答
0

NSD 是对的。

您也可以try用作捷径:

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

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

foo.try(:bar).try(:baz)
于 2009-11-10T17:12:22.620 回答