【问题标题】:Getting "undefined method `include?'" for request.user_agent为 request.user_agent 获取“未定义的方法 `include?'”
【发布时间】:2009-11-10 17:00:28
【问题描述】:

我有这行代码:

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

但我偶尔会收到此错误:

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

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

那么,如果没有HTTP_USER_AGENT,我该如何修复该行,使其不会引发错误?

【问题讨论】:

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


    【解决方案1】:

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

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

    查看here了解更多信息。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

        NSD 是对的。

        您也可以使用try 作为快捷方式:

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

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

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

        【讨论】:

          猜你喜欢
          • 2011-06-19
          • 1970-01-01
          • 1970-01-01
          • 2011-04-07
          • 1970-01-01
          • 2023-03-18
          • 1970-01-01
          • 1970-01-01
          • 2018-03-05
          相关资源
          最近更新 更多