为什么下面代码中两种调用方法有区别:
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
但我不想调用受保护的方法。