Я предполагаю, что вы хотите использовать human_attribute_name
для всех подклассов ActiveRecord::Base
- если это так, это просто вопрос расширения ActiveRecord::Base
с помощью этого метода, чтобы он был доступен для всех его подклассов : просто откройте класс, определите метод, и все готово:
class ActiveRecord::Base
def self.human_attribute_name(attr,options={})
HUMANIZED_ATTRIBUTES[attr.to_sym] || super
end
end
Просто поместите это на config/initializers/active_record.rb
, и оно будет автоматически требоваться приложением.
В качестве альтернативы, вы можете использовать инструменты i18n, представленные в рельсах, для достижения аналогичного результата - при условии, что ваша локаль en
:
# config/locales/en.yml
en:
activerecord:
attributes:
ar_inv_header:
shipto_customer_address: "Ship to customer address "
Таким образом, вы можете просто позвонить ArInvHeader.human_attribute_name(:shipto_customer_address)
. Это предпочтительный способ изменить «человеческие имена» моделей и атрибутов ActiveRecord.