【发布时间】:2013-04-10 23:08:55
【问题描述】:
我尝试在 HttpParty::Response 实例上使用 ActiveSupport 的(2.3 稳定版)try()。我有一个非常奇怪的行为:
> ro.parsed_response
{"error"=>"RecordInvalid", "description"=>"Record validation errors", "details"=>{"email"=> [{"description"=>"Email: foo@bar.com is already taken by another user"}]}}
> ro.try(:parsed_response)
NoMethodError Exception: undefined method `parsed_response' for #<Hash:0x11397d5d8>
在第一个示例中,我使用点表示法将 parsed_response 消息发送给 ro。它工作正常。在第二个中,我尝试使用 ActiveSupport 的 try() 调用它,它(令人惊讶地)引发了 NoMethodError 异常。
在这种情况下 try() 不应该返回 nil 吗?如果我可以使用点符号调用它,为什么它找不到“parsed_response”方法,如第一个示例所示?
提前致谢!
【问题讨论】:
-
嗨,是的,我正在使用 Ruby 1.8.7。
标签: ruby-on-rails ruby activesupport httparty