2011-03-31 17 views
6

मैं रूबी में ऑब्जेक्ट # प्रयास तक पहुंच प्राप्त करने का प्रयास कर रहा हूं।ऑब्जेक्ट तक पहुंच प्राप्त करने के लिए

मैंने सोचा कि केवल सक्रिय समर्थन सहित चाल चलती है, लेकिन ऐसा नहीं होता है।

irb(main):001:0> require 'rubygems' 
=> true 
irb(main):002:0> require 'active_support' 
=> true 
irb(main):003:0> o = Object.new 
=> #<Object:0x15d45d9> 
irb(main):004:0> o.respond_to? :try 
=> false 
irb(main):005:0> 

मैं Object#try तक पहुंच कैसे प्राप्त करूं?

उत्तर

4

आपको यह करने की कोशिश करने के लिए require "active_support/core_ext/object/try" है। source is here और क्योंकि NilClass खोला गया है और try को शून्य वापस करने के लिए परिभाषित किया गया है, तो आपको चेनिंग क्षमता मिलती है।

+0

@ क्रिस्टोफर मौजान आपका मुद्दा? 'try' को 'NoMethodError' को पकड़ने की आवश्यकता नहीं है, यह आपको' NilClass' पर किसी भी विधि को कॉल करने से रोकने के लिए है। – Samuel

+0

स्पष्ट रूप से मैंने प्रलेखन को गलत तरीके से पढ़ा। –

संबंधित मुद्दे