我的rails项目中有一个类产品,我试图检索在我的文件中定义的类的实例方法列表(不是继承的方法或通过mixin包含的方法)。这是我班的一个小样本:
class Product
include Mongoid::Document
include Mongoid::Paperclip
include Mongoid::Search
include Mongoid::Slug
include Mongoid::Timestamps
extend Enumerize
def product_image
image.url(:small) unless image.nil?
end
def product_school_level
self.school_levels.join ' | '
end
def product_grades
self.grades.where(degree_ids: nil).pluck(:name).uniq.join ' | '
end
end
我试着用
Product.instance_methods(false)
. 但是,这仍然返回许多我不需要的方法,下面是一个小示例:
:别名_字段,
:_post_process_回调,
:_run_image_post_process_回调,
:_image_post_process_回调,
:嵌套的_属性?,
:_run_touch_回调,
:别名_字段?,
:本地化的_字段?,
:字段?,
:预处理\u默认值?,
:字段,
:
Product.new.method(:_run_post_process_callbacks).source_location
在这些方法中的一些上尝试检查它们来自哪里。看来他们都来自积极的支持。
我从来没有在我的类中包含active_支持,所以我猜rails项目中的类会自动包含active_支持方法吗?如果没有任何继承语法(<<)还是包括语法?
那么,我如何才能实现我想做的事情,并摆脱我列表中不需要的这些方法呢?