respond_to_missing?
परिभाषित के बिना, method
के माध्यम से विधि प्राप्त करने की कोशिश असफल हो जायेगी:
class Foo
def method_missing name, *args
p args
end
def respond_to? name, include_private = false
true
end
end
f = Foo.new
f.bar #=> []
f.respond_to? :bar #=> true
f.method :bar # NameError: undefined method `bar' for class `Foo'
class Foo
def respond_to? *args; super; end # “Reverting” previous redefinition
def respond_to_missing? *args
true
end
end
f.method :bar #=> #<Method: Foo#bar>
Marc-André (एक रूबी कोर committer) एक अच्छा blog post on respond_to_missing?
है।
स्रोत
2012-12-10 00:52:03
ओह, यह एक अच्छा जवाब है! मैं अपना हट रहा हूँ। मुझे कुछ नया सिखाने के लिए धन्यवाद! – joelparkerhenderson
जानकारी के लिए धन्यवाद। – sawa
ब्याज से, तब के लिए 'answer_to?' क्या अच्छा है। क्या इसके लिए वैध उपयोग केस है? –