3
A
回答
6
您可以使用UnboundMethod#owner
方法來檢查在方法的實現:
class A
def method_missing(*args)
# do something
end
end
method = A.instance_method(:method_missing)
method.owner
# => A
注意:如果方法在模塊(後混入類層次結構某處)來實現,owner
將返回該模塊。
相關問題
- 1. 紅寶石。哪個類定義了一個方法?
- 2. 紅寶石方法定義
- 3. 有沒有辦法通過實例方法知道類名?紅寶石
- 4. 未定義的方法`哪裏'在紅寶石軌道協會
- 5. 紅寶石內省:如何問一個方法定義的紅寶石?
- 6. 寫一個紅寶石寶石,增加了一個JS方法軌道
- 7. 紅寶石 - 在類方法
- 8. 紅寶石:如何鉤住類方法
- 9. 如何知道一個類的繼承行是紅寶石
- 10. 未定義的方法(NoMethodError)紅寶石
- 11. 紅寶石:更短的方式來定義實例變量
- 12. 紅寶石測試用例:在`self.startup`方法定義實例變量
- 13. 在軌道上紅寶石未定義的方法'驗證'?
- 14. 未定義的方法錯誤^在軌道上的紅寶石
- 15. 自定義紅寶石與rspec軌道
- 16. 未定義的方法 '捕獲' 與Postmarkdown紅寶石寶石
- 17. 紅寶石:從實例
- 18. 如何正確實例化一個子類中的紅寶石
- 19. 如何找出哪些紅寶石寶石劫持一個ActiveRecord關聯方法
- 20. 紅寶石``**方法
- 21. 紅寶石:方法
- 22. 紅寶石軌道 - 靜態方法
- 23. 紅寶石混入與類方法,實例方法和類變量
- 24. 紅寶石內核:方法的行爲實例方法
- 25. 紅寶石方法作爲實例方法以及
- 26. 紅寶石:瞭解_why的cloaker方法
- 27. 如何知道在一個類中定義了哪些變量
- 28. 紅寶石 - 實現自定義排序
- 29. 紅寶石如果我定義了一類
- 30. 紅寶石未定義的方法'寫」爲IO:類(NoMethodError)
@張開宇有幫忙嗎? – 2014-11-25 08:43:35
很好的答案。糾正我,如果我錯了,但我認爲你可以停止'方法',它返回'#'(假設它只是爲了調試,你不需要在代碼本身返回的類)。 –
2014-11-25 09:20:03
不,'A.method(:method_missing)'返回表示'BasicObject#method_missing'的Method'實例,而不是'A#method_missing'。這是因爲'A#method_missing'被實現爲實例方法,而不是類方法。 – 2014-11-25 09:23:10