2013-08-27 104 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提供了靈活的多元化功能。