human(options = {})
public
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
Specify options with additional translating options.
# File activemodel/lib/active_model/naming.rb, line 197
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