【エラー備忘録】translation data {:title=>"タイトル", :◯◯=>"△△"} can not be used with :count => 1. key 'other' is missing.


エラーの内容

I18n::InvalidPluralizationData in ReviewsController#create
translation data {:title=>"タイトル", :body=>"本文"} can not be used with :count => 1. key 'other' is missing.

と表示される。

やりたかったこと

rails-i18nを用いて、reviewモデル内の下記の属性を日本語表示させようとした。

  • title
  • body

手順

  1. gem "rails-i18n"bundle install
  2. application.rbにconfig.i18n.default_locale = :jaを設定
  3. ja.yamlを作成

原因

ja.yamlの記述に問題があった。

誤った書き方

ja.yaml
ja:
  activerecord:
    models:
      review:
        title: タイトル
        body: 本文

models:の次の項目のmodel名reviewに続けて属性名を記述していた。

正しい書き方

ja.yaml
ja:
  activerecord:
    models:
      review:
    attributes:
      review:
        title: タイトル
        body: 本文

リロードを行うと、正しく日本語で表示された。(バリデーションを日本語で表示できた)

参考

[初学者]Railsのi18nによる日本語化対応