Module: ActiveModel::Translation

Defined in:
lib/select_options/active_model/translation.rb

Instance Method Summary collapse

Instance Method Details

#human_composite_attribute_name(attribute, value, options = {}) ⇒ Object

Transforms composite attribute names into a humanized format. Translations in en.yml for an ActiveRecord child looks like this:

en:
  activerecord:
    composite_attributes:
      user:
        role:
          admin: Administrator
          user: User

User.human_composite_attribute_name("role", "user") # => "User"

or

en:
  activerecord:
    attributes:
      user:
        role_admin: Administrator
        role_user: User

User.human_composite_attribute_name("role", "admin") # => "Administrator"

Specify options with additional translating options.



24
25
26
27
28
# File 'lib/select_options/active_model/translation.rb', line 24

def human_composite_attribute_name(attribute, value, options = {})
  return "" unless value.present?
  default = :"#{i18n_scope}.composite_attributes.#{model_name.i18n_key}.#{attribute}.#{value}"
  human_attribute_name "#{attribute}_#{value}", options.reverse_merge(:default => default)
end