8

错误消息不会翻译我的嵌套模型属性,因为它被定义为单数,但在错误消息中它会查找复数。

我有一个模型“人”,它有很多:地址。此 Person 模型接受“地址”的嵌套属性。我只与 Person 模型一起创建地址。

我的语言环境文件看起来像

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"]}>

查找没有找到addresses.street 的翻译,因为它只是yml 文件中的address.street。

我怎样才能让它在寻找address.street时找到address.street而不使我的所有条目加倍?

4

1 回答 1

-1

您是否在 Rails Doc 中查找了如何处理复数形式

[导轨 i18n][1] [1]: http: //guides.rubyonrails.org/i18n.html#pluralization

3 复数 在英语中,给定的字符串只有一种单数和一种复数形式,例如“1 message”和“2 messages”。其他语言(阿拉伯语、日语、俄语等)具有不同的语法,它们具有更多或更少的复数形式。因此,I18n API 提供了灵活的复数功能。

于 2014-05-20T19:35:18.540 回答