2013-08-27 105 views
6

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

我有一个模型'人'has_many:地址。这个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"]}> 

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

如何在不查找所有条目的情况下查找addresses.street时查找address.street?

+0

也许[这么回答](http://stackoverflow.com/a/11129637/660260)可能会有所帮助。 – Flauwekeul

回答

-1

你查找如何在Rails的文档处理多元化

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

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