2017-10-04 32 views
1

有沒有辦法在Rails 5模型中列出實現的所有類和實例方法(單獨),但不包括繼承的方法,由mixins提供的方法,屬性訪問器,ActiveRecord回調和任何其他方法那在模型中沒有明確實施?換言之,如果模型文件中沒有def some_method語句,則不應列出some_method在Rails 5模型中實現的列表方法。排除訪問器和回調

謝謝。

回答

2

對於類方法:

module_methods = Model.included_modules.map(&:methods) 
Model.methods - Model.superclass.methods - module_methods 

對於一些模型模型。您可以使用instance_methods作爲實例方法。

+0

這兩個解決方案(用於類和實例方法)都包括諸如'before_add_for_ *'和'before_remove_for_ *'之類的回調。任何想法如何刪除這些? – BrunoFacca

相關問題