繁体   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