我需要获取对象的模型名称。
很简单 object.model_name
但是当我需要获得继承的模型时,我该怎么做呢?
class ModelB < ModelA # I need ModelA
object
永远不会成为模特,它可能是ActiveRecord::Relation
,可能是Tire::Collection
,Array
我目前的实施已经非常混乱并且变得越来越大:
def name(resource)
model_name = if resource.is_a Array
name resource.first
else
if resource.try(:klass) # ActiveRecord::Relation
resource.klass.name
elsif resource.try(:results) # Tire::Collection
resource.results.first.class.name
else # ActiveModel
resource.class.name
end
end
end