8

ネストされたモデル属性は単数として定義されているため、エラー メッセージは翻訳されませんが、エラー メッセージでは複数形が検索されます。

has_many :addresses のモデル 'Person' があります。この Person モデルは、'Addresses' のネストされた属性を受け入れます。Person モデルと一緒に Addresses のみを作成しています。

私のロケールファイルは次のようになります

en:
  activerecord:
    models:
      person:
        one: "Person"
        other: "People"
      address:
        one: 'Address'
        other: 'Addresses'
    attributes:
      person:
        first_name: 'First name'
        last_name: 'Last name'
        middle_name: 'Middel name'
      address:
        street: street
        city: city
        country: country

エラーメッセージの場合:

en:
  errors: &errors
    format: ! '%{attribute} %{message}'
    messages:
      blank: can't be blank

単一のモデルで動作しますが、ネストされた属性では検証メッセージに問題があります。

メッセージは次のように表示されるため:

 @messages=
  {:first_name=>["can't be blank"],
   :last_name=>["can't be blank"],
   :"addresses.street"=>["can't be blank"],
   :"addresses.city"=>["can't be blank"]}>

ルックアップでは、addresss.street の変換が見つかりません。これは、yml ファイルの address.street にすぎないためです。

すべてのエントリを 2 倍にすることなく、addresses.street を探すときに address.street を見つけるにはどうすればよいですか?

4

1 に答える 1

-1

Rails Doc で複数形の処理方法を調べましたか

[レール i18n][1] [1]: http://guides.rubyonrails.org/i18n.html#pluralization

3 複数形化 英語では、与えられた文字列に対して 1 つの単数形と 1 つの複数形しかありません。たとえば、"1 message" と "2 messages" です。他の言語 (アラビア語、日本語、ロシア語など) にはさまざまな文法があり、複数形が増えたり減ったりします。したがって、I18n API は柔軟な複数形化機能を提供します。

于 2014-05-20T19:35:18.540 に答える