Ruby获取模型名称

时间:2015-01-08 20:04:32

标签: ruby-on-rails ruby activerecord

我需要获取对象的模型名称。

很简单

object.model_name

但是当我需要获得继承的模型时,我该怎么做呢?

class ModelB < ModelA # I need ModelA

object永远不会成为模特,它可能是ActiveRecord::Relation,可能是Tire::CollectionArray

我目前的实施已经非常混乱并且变得越来越大:

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

0 个答案:

没有答案