instance method
humanize
Ruby on Rails 4.2.9
Since v2.2.3Signature
humanize(lower_case_and_underscored_word, options = {})
Tweaks an attribute name for display to end users.
Specifically, humanize 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_wordreq -
optionsopt = {}
Source
# File activesupport/lib/active_support/inflector/methods.rb, line 125
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_+/, '')
result.sub!(/_id\z/, '')
result.tr!('_', ' ')
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 125
· View on GitHub
· Improve this page
· Find usages on GitHub
Defined in ActiveSupport::Inflector