【发布时间】:2018-01-17 16:39:03
【问题描述】:
我正在尝试获取在我们的 Rails 代码库中定义的方法的列表,不包括在超类中定义或在运行时动态定义的任何内容。我试过instance_methods(false),但是返回了很多方法:
> User.instance_methods(false).length
=> 310
我猜这是因为 Rails 在运行时定义了一堆方法。有没有办法获取仅在我们应用程序的文件中定义的方法列表?希望有一种 Ruby 方式,而不仅仅是在所有文件上运行 grep。类方法也有加分...
【问题讨论】:
-
如果继承自 ActiveRecord::Base,你可以试试
User.methods.sort - ActiveRecord::Base.methods -
问题是ActiveRecord根据数据库属性在其子类中生成了很多方法:
(User.instance_methods(false) - ActiveRecord::Base.instance_methods(false)).size # => 310
标签: ruby-on-rails ruby