Я замечаю различия между хэш-объектом в Ruby 1.8.7 и хэш-объектом в Rails 3.0.10.Хэш не содержит метода «try»
Например, в 1.8.7 irb
, я получаю:
1.8.7 :001 > {}.try(:method)
NoMethodError: undefned method `try' for {}:Hash
from (irb):1```
Однако из консоли 3.0.10 рельсов, я получаю:
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
вернет нуль вместо того, чтобы метать NoMethodError.
Что мне не хватает?
Да, я обнаружил, что Rails monkeypatches Object и добавляет в' try, ', что было для меня неожиданностью. – Davidann