我的模型中有一个descendants
方法Question
可以返回从它继承的所有对象。
class Question < ActiveRecord::Base
class << self
def descendants
ObjectSpace.each_object(Class).select do |klass|
klass < self
end
end
end
end
当我打电话时,Question.descendants
我得到一个带有单个对象的数组
[MultipleChoice(id: integer, text: text, scored: boolean, required: boolean, type: string, questionnaire_id: integer, created_at: datetime, updated_at: datetime)]
问题是当我打电话时Question.descendants.first.class
我会回来Class
而不是预期的MultipleChoice
。
为什么会这样?