instance method
humanize
Ruby on Rails 6.0.6
Since v2.2.3Signature
humanize(lower_case_and_underscored_word, capitalize: true, keep_id_suffix: false)
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).
The trailing ‘_id’ can be kept and capitalized by setting the optional parameter keep_id_suffix to true (default is false).
humanize('employee_salary') # => "Employee salary" humanize('author_id') # => "Author" humanize('author_id', capitalize: false) # => "author" humanize('_id') # => "Id" humanize('author_id', keep_id_suffix: true) # => "Author Id"
If “SSL” was defined to be an acronym:
humanize('ssl_error') # => "SSL error"
Parameters
-
lower_case_and_underscored_wordreq -
capitalizekey = true -
keep_id_suffixkey = false
Source
# File activesupport/lib/active_support/inflector/methods.rb, line 128
def humanize(lower_case_and_underscored_word, capitalize: true, keep_id_suffix: false)
result = lower_case_and_underscored_word.to_s.dup
inflections.humans.each { |(rule, replacement)| break if result.sub!(rule, replacement) }
result.sub!(/\A_+/, "")
unless keep_id_suffix
result.sub!(/_id\z/, "")
end
result.tr!("_", " ")
result.gsub!(/([a-z\d]*)/i) do |match|
"#{inflections.acronyms[match.downcase] || match.downcase}"
end
if capitalize
result.sub!(/\A\w/) { |match| match.upcase }
end
result
end
Defined in activesupport/lib/active_support/inflector/methods.rb line 128
· View on GitHub
· Improve this page
· Find usages on GitHub
Defined in ActiveSupport::Inflector