在Rails 5模型中实现的列表方法。排除访问器和回调
问题描述:
有没有办法在Rails 5模型中列出实现的所有类和实例方法(单独),但不包括继承的方法,由mixins提供的方法,属性访问器,ActiveRecord回调和任何其他方法那在模型中没有明确实施?换言之,如果模型文件中没有def some_method
语句,则不应列出some_method
。在Rails 5模型中实现的列表方法。排除访问器和回调
谢谢。
答
对于类方法:
module_methods = Model.included_modules.map(&:methods)
Model.methods - Model.superclass.methods - module_methods
对于一些模型模型。您可以使用instance_methods
作为实例方法。
这两个解决方案(用于类和实例方法)都包括诸如'before_add_for_ *'和'before_remove_for_ *'之类的回调。任何想法如何删除这些? – BrunoFacca