🪬

【Rails】翻訳したモデルのattributeを取得する方法

に公開

config/locales/ja.yml で翻訳したモデルの属性名等を取得する方法です。

指定された階層に置くことで、 Model.model_name.human でモデル名を、 Model.human_attribute_name(attribute) で属性名を取得できます。

以下のコードは「あなたはいくつ知っている?Rails I18nの便利機能大全。 - Qiita」からの引用です。

config/locales/ja.yml
ja:
  activerecord:
    # モデル名
    models:
      user: 顧客
    # モデルごとのアトリビュート名
    attributes:
      user:
        name: 名前
        address: 住所
  # 全モデル共通のアトリビュート名
  attributes:
    created_at: 作成日時
    updated_at: 更新日時
> User.model_name.human
=> "顧客"
> User.human_attribute_name(:name)
=> "名前"
> User.human_attribute_name(:created_at)
=> "作成日時"

参考記事

https://qiita.com/Kta-M/items/bd4ba36a58ad602a9d8b#モデル名やモデルのアトリビュート名を取得する

Discussion