[英]Ruby get methods defined in codebase
我試圖獲取在Rails代碼庫中定義的方法的列表,但不包括超類中定義的任何內容或在運行時動態定義的任何內容。 我嘗試過instance_methods(false)
,但是返回了大量方法:
> User.instance_methods(false).length
=> 310
我猜這是因為Rails在運行時定義了一堆方法。 有什么方法可以獲取僅在我們應用程序文件中定義的方法列表? 希望有一種Ruby方式,而不僅僅是在所有文件上運行grep。 類方法的加分點...
User.instance_methods
也將顯示所有繼承的方法,因此您應該運行類似的內容
User.instance_methods - User.superclass.instance_methods
請注意,當您繼承ActiveRecord::Base
類時,它將顯示AR生成的其他方法的堆。
使用MyClass.instance_methods(false)
,但是如果您不希望它返回超類中定義的方法,請確保將false
作為參數傳遞。
此外,對類方法使用MyClass.singleton_methods(false)
。
更多信息:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.