Method: ActiveModel::Name#human

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

#human(options = {}) ⇒ Object

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.



197
198
199
200
201
202
203
204
205
206
207
# File 'activemodel/lib/active_model/naming.rb', line 197

def human(options = {})
  return @human if i18n_keys.empty? || i18n_scope.empty?

  key, *defaults = i18n_keys
  defaults << options[:default] if options[:default]
  defaults << MISSING_TRANSLATION

  translation = I18n.translate(key, scope: i18n_scope, count: 1, **options, default: defaults)
  translation = @human if translation == MISSING_TRANSLATION
  translation
end