記憶の外付けHDD

切実に頭にUSBのコネクターがほしいです。なるべくtype-cでお願いしたいです。(忘れないように、プログラミング学習で学んだことを投稿してます)

2019/09/06_i18nに出てくる「attributes」って何?

2019/09/06_モデルごとに日本語化する要素を指定(i18n)

経緯

  • グループチャットアプリの実装中に、日本語化がおかしくなっている点を見つけたので、修正しました。
  • その中で、そもそもattributesってなんだっけ?と思い、自分なりの答えが出たので、最後の方に記載してます。
  • 使用言語は、ruby on rails です。

症状

  • groupテーブルとuserテーブルに同名のnameというカラムがある
  • 現状、nameを「グループ名」に日本語化したら(i18n)userのnameも「グループ名」になってしまった
    (本当は「Name」にしたかった…)
  • 「グループ名」を指定した方法は、以下のとおり

locales/ja.yml(修正前)

ja:
  attributes:
    name: 'グループ名'
  (以下、略)

モデルでの指定なく、すべての:nameを「グループ名」にしてしまっている?

検証

参考に掲載したサイトを参照し、以下のように直したら、解消しました。

locales/ja.yml(修正後)

ja:
  attributes:
    user:
      name: 'グループ名'
  (以下、略)
  #テーブル名「user」を途中の階層に追加

そもそも、attributesって?

  • 日本語だと、「属性」の意味
  • おそらく、i18nで使うattributesデータベースの領域で使われる「属性」から来ているのでは?
    • 参考URLの通り、データベースでいう「属性」は、テーブルのカラム(列)とほぼ同じものだと思ってOK

参考

Rails 国際化 (i18n) API - Rails ガイド

属性 (データベース) - Wikipedia)