module ActiveModel::Naming

def model_name

Person.model_name.plural # => "people"
Person.model_name.singular # => "person"
Person.model_name.class # => ActiveModel::Name
Person.model_name.name # => "Person"

end
extend ActiveModel::Naming
class Person

(See ActiveModel::Name for more information).
used to retrieve all kinds of naming-related information
Returns an ActiveModel::Name object for module. It can be
def model_name
  @_model_name ||= begin
    namespace = module_parents.detect do |n|
      n.respond_to?(:use_relative_model_naming?) && n.use_relative_model_naming?
    end
    ActiveModel::Name.new(self, namespace)
  end
end