instance method
humanize
Ruby on Rails 7.1.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 an “_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 135
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.tr!("_", " ")
result.lstrip!
if !keep_id_suffix && lower_case_and_underscored_word&.end_with?("_id")
result.delete_suffix!(" id")
end
result.gsub!(/([a-z\d]+)/i) do |match|
match.downcase!
inflections.acronyms[match] || match
end
if capitalize
result.sub!(/\A\w/) do |match|
match.upcase!
match
end
end
result
end
Defined in activesupport/lib/active_support/inflector/methods.rb line 135
· View on GitHub
· Improve this page
· Find usages on GitHub
Defined in ActiveSupport::Inflector