instance method humanize

Ruby on Rails 5.1.7

Available in: v2.2.3 v2.3.18 v3.0.20 v3.1.12 v3.2.22.5 v4.0.13 v4.1.16 v4.2.11.3 v5.0.7.2 v5.1.7 v5.2.8.1 v6.0.6.1 v6.1.7.10 v7.0.10 v7.1.6 v7.2.3.2 v8.0.5.1 v8.1.3.1 edge

Signature

humanize(lower_case_and_underscored_word, options = {})

Tweaks an attribute name for display to end users.

Specifically, performs these transformations:

  • Applies human inflection rules to the argument.

  • Deletes leading underscores, if any.

  • Removes a “_id” suffix if present.

  • Replaces underscores with spaces, if any.

  • Downcases all words except acronyms.

  • Capitalizes the first word.

The capitalization of the first word can be turned off by setting the :capitalize option to false (default is true).

humanize('employee_salary')              # => "Employee salary"
humanize('author_id')                    # => "Author"
humanize('author_id', capitalize: false) # => "author"
humanize('_id')                          # => "Id"

If “SSL” was defined to be an acronym:

humanize('ssl_error') # => "SSL error"

Parameters

lower_case_and_underscored_word req
options opt = {}
Source
# File activesupport/lib/active_support/inflector/methods.rb, line 124
    def humanize(lower_case_and_underscored_word, options = {})
      result = lower_case_and_underscored_word.to_s.dup

      inflections.humans.each { |(rule, replacement)| break if result.sub!(rule, replacement) }

      result.sub!(/\A_+/, "".freeze)
      result.sub!(/_id\z/, "".freeze)
      result.tr!("_".freeze, " ".freeze)

      result.gsub!(/([a-z\d]*)/i) do |match|
        "#{inflections.acronyms[match] || match.downcase}"
      end

      if options.fetch(:capitalize, true)
        result.sub!(/\A\w/) { |match| match.upcase }
      end

      result
    end

Defined in activesupport/lib/active_support/inflector/methods.rb line 124 · View on GitHub · Improve this page · Find usages on GitHub

Defined in ActiveSupport::Inflector

Type at least 2 characters to search.

Use the arrow keys to navigate results, Enter to open one, Escape to close.

Keyboard shortcuts

/
Focus search
⌘K / Ctrl-K
Command palette
?
This help
Esc
Close