Rails

【Rails】ja.ymlで翻訳したモデル名とカラム名を取得できるmodel_name.humanメソッドとhuman_attribute_nameメソッドについて

Rails

 

今回はja.ymlで翻訳したモデル名とカラム名を取得できるメソッド、model_name.humanhuman_attribute_nameについてまとめました。countを引数に渡すことで単数形と複数形を切り替えることができるという、使ったことがなかった機能もあったため備忘録としてもまとめています。

model_name.humanメソッドとは

model_name.humanは、Model.model_name.humanとすることでモデル名を取得できるメソッドです。

ja:
  activerecord:
    models:
      user: ユーザー
      item: 商品
User.model_name.human
=> ユーザー

Item.model_name.human
=> 商品

 

以下のようにcountという引数を渡すことで、モデル名を単数形と複数形を切り替えることができます。引数がない場合は単数形が選択されます。

ja:
  activerecord:
    models:
      user:
        one: 単ユーザー
        other: 複ユーザー
User.model_name.human
=> 単ユーザー

User.model_name.human(count: 1)
=> 単ユーザー

User.model_name.human(count: 2)
=> 複ユーザー

human_attribute_nameメソッドとは

human_attribute_nameは、Model.human_attribute_name(attribute)とすることでモデルのカラム名を取得できるメソッドです。

ja:
  activerecord:
    models:
      user: ユーザー
      item: 商品
    attributes:
      user:
        name: 名前
        address: 住所
        created_at: 作成日
        updated_at: 更新日
      item:
        name: 商品名
        price: 料金
        created_at: 登録日
        updated_at: 更新日
# User
User.human_attribute_name(:name)
=> 名前

User.human_attribute_name(:address)
=> 住所

User.human_attribute_name(:created_at)
=> 作成日

User.human_attribute_name(:updated_at)
=> 更新日

# Item
Item.human_attribute_name(:name)
=> 商品名

Item.human_attribute_name(:price)
=> 料金

Item.human_attribute_name(:created_at)
=> 登録日

Item.human_attribute_name(:updated_at)
=> 更新日

まとめ

  • model_name.humanはモデル名を取得できるメソッド
  • human_attribute_nameはモデルのカラム名を取得できるメソッド

参考

 

今回はja.ymlで翻訳したモデル名とカラム名を取得できるメソッド、model_name.humanとhuman_attribute_nameについてまとめました。普段使っているメソッドでも知らない機能がたくさんありますね、、、