def human(options = {})
      return @human unless @klass.respond_to?(:lookup_ancestors) &&
                           @klass.respond_to?(:i18n_scope)

      defaults = @klass.lookup_ancestors.map do |klass|
        klass.model_name.i18n_key
      end

      defaults << options[:default] if options[:default]
      defaults << @human

      options = { scope: [@klass.i18n_scope, :models], count: 1, default: defaults }.merge!(options.except(:default))
      I18n.translate(defaults.shift, options)
    end
def human(options = {})
      return @human unless @klass.respond_to?(:lookup_ancestors) &&
                           @klass.respond_to?(:i18n_scope)

      defaults = @klass.lookup_ancestors.map do |klass|
        klass.model_name.i18n_key
      end

      defaults << options[:default] if options[:default]
      defaults << @human

      options = { scope: [@klass.i18n_scope, :models], count: 1, default: defaults }.merge!(options.except(:default))
      I18n.translate(defaults.shift, options)
    end
Returns a new ActiveModel::Name instance. By default, the +namespace+
 and +name+ option will take the namespace and name of the given class
 respectively.

   module Foo
     class Bar
     end
   end

   ActiveModel::Name.new(Foo::Bar).to_s
   # => "Foo::Bar"
 Transform the model name into a more human format, using I18n. By default,
 it will underscore then humanize the class name.

   class BlogPost
     extend ActiveModel::Naming
   end

   BlogPost.model_name.human # => "Blog post"

 Specify +options+ with additional translating options.