class ActiveModel::Name
def human(options = {})
BlogPost.model_name.human # => "Blog post"
end
extend ActiveModel::Naming
class BlogPost
it will underscore then humanize the class name.
Transform the model name into a more human format, using I18n. By default,
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