次のコードで、2 種類の呼び出しメソッドに違いがあるのはなぜですか。
class Access
def method_missing name
print "Method is missing"
end
protected
def protected_method
print "Calling Protected Method"
end
end
access = Access.new
access.protected_method #Method is missing
access.send(:protected_method) #Calling Protected Method
期待どおりにaccess.protected_method
動作します。ただし、send
オプションは、保護されていてもメソッドを呼び出そうとします。内部で何が起こっているのか知りたいです。
メソッドを呼び出すための文字列を取得するので、使用send
したいのですが、保護されたメソッドを呼び出したくありません。