Как получить метки атрибута локализации для модели? - PullRequest
0 голосов
/ 23 июня 2019

Допустим, у меня есть типичная модель 'Пользователь' с полем 'first_name'.Я настроил локализацию следующим образом для обработки удобочитаемой метки:

en:
  activerecord:
    attributes:
      user:
        first_name: "First Name"

Для данного объекта @user я могу получить доступ к этой метке «Имя» для использования в представлении и т. Д .?

Я уверен, что это возможно - я не могу найти это где-нибудь легко.

Ответы [ 2 ]

2 голосов
/ 23 июня 2019

Атрибуты модели связаны с ... моделями , а не экземплярами .

Для User модели вы написали бы

User.human_attribute_name(:first_name)

Если вы действительно хотите получить значение из пользовательского экземпляра, тогда

@user.class.human_attribute_name(:first_name)

Ваш почти точный пример задокументирован здесь https://guides.rubyonrails.org/i18n.html#translations-for-active-record-models

0 голосов
/ 23 июня 2019

Не уверен, зачем вам нужен этот @user объект, потому что для всех пользовательских объектов эта метка first_name одинакова.

Просто попробуйте:

 I18n.t "activerecord.attributes.user.first_name"

Больше деталей здесь.

Обновление

Ответ @colinux наиболее элегантен.User.human_attribute_name(:first_name) используйте это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...