【发布时间】:2012-03-08 17:00:18
【问题描述】:
我注意到 Ruby 1.8.7 中的哈希对象和 Rails 3.0.10 中的哈希对象之间的差异。
例如,在 1.8.7 irb 内,我得到:
1.8.7 :001 > {}.try(:method)
NoMethodError: undefned method `try' for {}:Hash
from (irb):1```
但是,从 3.0.10 rails 控制台,我得到:
1.8.7 :003 > {}.try(:method_x)
NoMethodError: undefined method `method_x' for {}:Hash
from (irb):3:in `try'
from (irb):3
这让我感到惊讶,因为我的印象是 try 是在 Object 中定义的,它是 Hash 的祖先,try 将返回 nil 而不是抛出 NoMethodError。
我错过了什么?
【问题讨论】:
标签: ruby-on-rails ruby ruby-1.8.7 rails-3.0.10