Method: ActiveModel::Naming#model_name

Defined in:
activemodel/lib/active_model/naming.rb

#model_nameObject

Returns an ActiveModel::Name object for module. It can be used to retrieve all kinds of naming-related information (See ActiveModel::Name for more information).

class Person
  extend ActiveModel::Naming
end

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


270
271
272
273
274
275
276
277
# File 'activemodel/lib/active_model/naming.rb', line 270

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