簡體   English   中英

Ruby在代碼庫中定義的get方法

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM