Rails翻译嵌套属性i18n的验证错误消息

时间:2013-08-27 18:20:49

标签: ruby-on-rails validation localization nested-attributes

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

我有一个模型'人',其中包含:__地址。此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?

1 个答案:

答案 0 :(得分:-1)

您是否在Rails Doc

中查找了如何处理复数化问题

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

3多元化 在英语中,给定字符串只有一个单数和一个复数形式,例如" 1条消息"和" 2条消息"。其他语言(阿拉伯语,日语,俄语等等)具有不同的语法,这些语法具有更多或更少的复数形式。因此,I18n API提供了灵活的多元化功能。