2011-03-31 33 views
6

Ruby'de Object # try'e erişmeye çalışıyorum.Nesneye erişme # try

Sadece activesupport'un dahil edilmesinin hile yapacağı düşünülüyordu, ama değil.

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'a nasıl erişebilirim?

cevap

4

Yapmanız gereken tek şey, require "active_support/core_ext/object/try". source is here ve NilClass açıldığı ve try nil dönüşü tanımlandığı için, zincirleme yeteneğini elde edersiniz.

+0

@Christopher Maujean Amacınız mı? '' try' 'NoMethodError's upbble gerekiyordu, 'bir NilClass' üzerinde herhangi bir yöntem çağırmaktan durdurmak için anlamına geliyordu. – Samuel

+0

görünüşe göre belgeleri yanlış okuyorum. –