railsを勉強中に出てきたhuman_attribute_nameについての記事です。
モデル名.human_attribute_name(:カラム名)とは
ActiveRecord::Baseのクラスのメソッド
内部的に I18nモジュールを利用してくれるやつ
つまり、日本語化とかするときに使うって認識でいれば良いと思います。
#設定方法
【参照先】config/locales/ja.yml
こんな感じで記述をしておきます。
config/locales/ja.yml
ja:
activerecord:
errors:
messages:
record_invalid: "バリデーションに失敗しました: %{errors}"
restrict_dependent_destroy:
has_one: "%{record}が存在しているので削除できません"
has_many: "%{record}が存在しているので削除できません"
models:
tasks: タスク
attributes:
task:
id: ID
name: 名称
description: 内容
created_at: 登録日時
updated_at: 更新日時
#使い方
翻訳したい部分のviewファイルに記述するときは以下のようにしましょう。
今回はToDoアプリを作成していると想定しています。
Task.human_attribute_name(:name)
=> "名称"
t("activerecord.attributes.task.name")
=> "名称"
Task.human_attribute_name(:created_at)
=> "登録日時"
t("activerecord.attributes.task.created_at")
=> "登録日時"
なんか長くて複雑そうですが、やっていることは単純ですね!